![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO и поставщики данных
Nous Mellon © (2004-03-29 11:07:00)Доброго времени суток, господа.
Возникла такая проблема:
Есть некая mdb База в которой наличивсвуют несколько таблиц.
Заполняются они в run-time ( используется компонент ADOTable )
В одной из-них четыре поля: три целочисленных и последнее действительное.
Я делал Insert записи, заполнял данные поля и в конце делал Table.post;
В качестве поставщика данных для объекта Connection использовался Jet.
При выполнении Post вылетает ошибка несоответсвия типов данных.
Причем если закомментировать заполнение действительного поля то все нормально.
Если открыть БД в Аксесс то видно что в качестве разделителя целой части в Бд используется ',', а в Делфи '.'. Может быть в этом проблема? Но если сменит Jet на стандартный MSDASQL то все почему-то работает.
Может быть вы подскажете с чем связана эта ошибка и пути ее возможного разрешения без смены Jet.
Nous Mellon (2004-03-29 15:48:00) [1]Кажется я разрешил проблему заменой типа данных самого поля.
Он был "Действительное" и я не знал какой в Делфи точно ему эквивалент(думал что Реал),я поменял на "Двойное", а переменную поставил Double и вроже бы заработало. Спасибо всем, в частности sniknik, который уже в
н-ный раз меня выручает.
sniknik (2004-03-29 15:36:00) [2]тогда значит поле в таьлице всетаки не того типа, либо ты всетаки делал не так как тебе говорили.
не
MyTable.FieldByName('FloatName').AsFloat:=MyFloatVar;
к примеру, а
MyTableMyFloatField.AsFloat:= MyFloatVar;
Nous Mellon (2004-03-29 15:32:00) [3]
> var MyFloatVar: double; ?
Сейчас попробовал и Double и Real - результат тот эе...
А вообще был Real
sniknik (2004-03-29 15:23:00) [4]var MyFloatVar: double; ?
Nous Mellon (2004-03-29 15:08:00) [5]нет, к сожалению результат тот же...
Может еще какие-нибудь предложения?
Nous Mellon (2004-03-29 15:03:00) [6]
> рекомендую делать так:
> MyTable.FieldByName('Name').AsFloat:=MyFloatVar;
Спасибо, попробую может спасет :)
Cobalt (2004-03-29 14:59:00) [7]2 Nous Mellon ©
рекомендую делать так:
MyTable.FieldByName('Name').AsFloat:=MyFloatVar;
Nous Mellon (2004-03-29 14:42:00) [8]Сорри забыл первую строку
MyTable.Insert;
Nous Mellon (2004-03-29 14:41:00) [9]
> а как вы заполняли?
если вы ко мне то пожалуйста
MyTableMyFloatField.Value := MyFloatVar;
MyTable.Post;
Идентификаторы конечно были не такие но смысл тот.
Cobalt (2004-03-29 14:28:00) [10]а как вы заполняли?
Примерчик, пожалуйста.
Nous Mellon (2004-03-29 14:24:00) [11]
> , заполнять по другому.
как правильно заполнять используя Jet?
Если можно небольшой пример
sniknik (2004-03-29 11:24:00) [12]> Может быть вы подскажете с чем связана эта ошибка и пути ее возможного разрешения без смены Jet.
вот с этим
> Я делал Insert записи, заполнял данные поляи в конце делал Table.post;
, заполнять по другому.