Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
1-89851
mrAld
2003-11-16 15:09
2003.11.27
Трей для чайников


1-89986
Olga_Oo
2003-11-17 10:59
2003.11.27
Label


3-89690
Dmitriy O.
2003-11-06 11:07
2003.11.27
Почему ADO так тормозит ?


14-90075
vuk
2003-11-04 17:41
2003.11.27
По аське пришло. :o)


1-89859
AngelSaint
2003-11-16 10:34
2003.11.27
system idle




   Наверх