Главная страница
    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
14-90105
Rouse_
2003-11-04 09:48
2003.11.27
Антология Мастера Улабаются


1-89982
race1
2003-11-16 17:41
2003.11.27
unicode save


1-89968
Анна
2003-11-17 18:05
2003.11.27
Что делать с Combobox ом чтобы...


1-89924
snake1977
2003-11-18 10:58
2003.11.27
Debuger


3-89778
MakNik
2003-11-05 20:21
2003.11.27
DBGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский