знатокам Access-а и Delphi

avvokado

вот у меня есть таблица в аксесе с полем типа "Числовой" и размером поля "Действительное"
Хочу чтобы программа в Delphi добавила запись. Какого типа переменную в Delphi я должен послать на это поле в Accesse, чтобы не было "несоответствия типа данных" и запись добавилась?

nekaya

можешь тупо собрать текстовую строку запроса на изменение данных и выполнить его не задумываясь о типах переменной.
если не устраивает, то объясни через что ты меняешь данные (ADO, DAO, ?)

0000

А ты что нить пробовал? Любого численного типа по идее прокатит - все равно конвертить надо будет в строку

var
Value: float;
...
ADOQuery1.Add ('INSERT INTO table_name (field_name) VALUES (' + FloatToStr (value) +')');
ADOQuery1.Exec;

avvokado

ADO. Не понял тебя Мне не изменить данные нуна, а создать запись
ТуЗубастик: запись добавляется через ADOTable.AppendRecord пробовал и целочисленные подставлять и real и double и string - нихрена не выходит. Изначально поле в Access было числовое, но размер "длинное целое" и всё работало естественно с переменными типа integer, а мне надо, чтобы поле стало не "длинные целые", а "действительные". Так вот тока я меняю размер поля, программа выдаёт несовместимость данных, сцуко, причём меняют тип переменных на строку, real, double - не помогает

0000

Если есть возможность, то ооочень рекомендую отказаться от компонента Table в пользу Query.
Почему у тя такой косяк не знаю по тому как не спец - ADO компонентами никогда в жизни не пользовался, как и вообще компонентами

avvokado

да если бы это была моя программа - отказался бы с радостью
Я даже подпишусь под тем, что и Delphi и Access - гавно редкостное Только вот мне надо подправить эту программку, уже написанную

nekaya

и Delphi и Access - гавно редкостное
вместе веселее:)

avvokado

подсказали бы лучше - как обойти принципе есть тема да, что мона попробовать подабавлять чисто через ADO.Query или ADOCommand - ща попробую чтоли

nekaya

что-то такое вспоминается:
Dim r As ADODB.Recordset, v
v = 1.23
r.Open "select top 0 * from T", conn, adOpenDynamic, adLockBatchOptimistic
r.AddNew "fld", v
r.Update
тут на тип относительно наплевать, все равно неявно преобразование сделается при необходимости

avvokado

короче, i did it Через ADOCommand када делаешь - там все параметры можно один хрен в текстовом виде посылать

0000

Я даже подпишусь под тем, что и Delphi и Access - гавно редкостное
Я такого не говорил, если че.
Оставить комментарий
Имя или ник:
Комментарий: