Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: CL | DM;

Вниз

Ошибка записи данных на сервер   Найти похожие ветки 

 
чайник   (2003-11-10 09:28) [0]

Добрый день, уважаемые мастера, проблема при записи данных в таблицу на сервере.Вставляю запись из формы проекта через TEdit и комбобоксы из полей таблиц - справочников. Выдает ошибку конвертации данных. Хотя поля одинакового типа и в справочнике и в той таблице куда заношу. Код следующий:

procedure Tgl.SpeedButton7Click(Sender: TObject);
var tsql:string;
begin
f1.Dat1.StartTransaction;
try
tsql:="insert into vid_zaim (kod_kl,kod_z) values("+ """+D_kl.DataSet.FieldValues["kod"]+"",""+D_zai.DataSet.FieldValues["kod"]+"")";
Q1.SQL.Clear;
Q1.SQL.Add(tsql);
Q1.Prepared:=True;
Q1.ExecSQL;
f1.Dat1.Commit;
except
f1.Dat1.RollBack;
end;

end;
Ошибка следующая: Invalid variant type conversion.
Спасибо


 
asp   (2003-11-10 09:38) [1]

...
Q1.SQL.Text:= "INSERT INTO VID_ZAIM " +
"(KOD_KL, KOD_Z) " +
"VALUES(:KOD_KL, :KOD_Z)";
Q1.ParamByName("KOD_KL").AssignFieldValue(D_kl.DataSet.FieldByName("KOD"), D_kl.DataSet.FieldByName("KOD").Value);
Q1.ParamByName("KOD_Z").AssignFieldValue(D_zai.DataSet.FieldByName("KOD"), D_zai.DataSet.FieldByName("KOD").Value);
try
f1.Dat1.StartTransaction;
Q1.ExecSQL;
f1.Dat1.Commit
except
f1.Dat1.Rollback
end;
...
Только зачем здесь явная транзакция?


 
чайник   (2003-11-10 09:41) [2]

да я только начинаю писать под клиент сервер поэтому и не совсем еще разобрался, трансакцию наверное лучше при выходе из меню обработки данных сделать? один раз...


 
чайник   (2003-11-10 09:44) [3]

Спасибо, все получилось..


 
Silver Alex   (2003-11-10 09:45) [4]

перпиши запрос на типа
"insert into vid_zaim (kod_kl,kod_z)
values( :kod_kl, :kod_z) ) "
а перед исполнением пиши
parameters.parambyname("kod_kl").value:=D_kl.DataSet.Fieldbyname("kod").Asinteger;// или какой там тип если строка , то AsString
//так же и другой параметр
parameters.parambyname("kod_zэ).value:=D_zai.DataSet.Fieldbyname("kod_z").Asinteger

вобщем попробуй так :))


 
АлексейК   (2003-11-10 12:42) [5]

да я только начинаю писать под клиент сервер поэтому и не совсем еще разобрался, трансакцию наверное лучше при выходе из меню обработки данных сделать? один раз...
Лучше ее вообще пока не трогать, особенно на клиенте. Сервер сам будет работать с тразакциями. А вот когда разберешся, то и вопроса не будет возникать, начинать надо ли тразакцию явно в данном случае и каккие оперции в ней будут присутвовать.



Страницы: 1 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.009 c
3-89701
Softal
2003-11-10 15:20
2003.11.27
MySQL и delphi


3-89791
sokohigh
2003-11-06 17:12
2003.11.27
Нужен улучшенный DBLookupComboBox...


6-90020
SergP
2003-09-28 13:23
2003.11.27
Сокеты... ошибка 11001 и пр. Что с ними делать?


3-89678
sergey123
2003-11-06 14:33
2003.11.27
Как сделать, чтобы в гриде для каждой строки задавать тип поля?


14-90111
Layner
2003-11-04 08:37
2003.11.27
offtop: А почему в многопоточном прил., написанном на Delphi, при





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский