Цитата:
Сообщение от Scorpuha
Создаю таблицу программно. таблица сама создается, все ОК. а вот значения в поля не записываются. помогите, вот код.
Код:
1 2 3 4 5 6 7 8 9 10 | begin
with datamodule2 . ADOQuery1 do begin
SQL . Text:= 'CREATE TABLE ' +edit1 . text+ ' (ID INTEGER, Numb String, Obj VARCHAR(255), Data Date, Vremya Date, Id_Tovara INTEGER, PRIMARY KEY(ID))' ;
if ExecSQL<> 0 then begin
with datamodule2 . ADOTable1 . Create ( nil ) do begin <========
TableName:=edit1 . text;
datamodule2 . ADOTable1 . Insert;
datamodule2 . ADOTable1 . FieldByName( 'Numb' ).AsString :=NewDoc . Edit1 . Text;
post;
|
|
Во-первых переделай всё без использования конструкции with - сразу пропадёт много непонятных глюков.
Во-вторых строка которую я пометил стрелкой неправильная - создавать новый объект нужно не от уже существующего объекта, а от класса:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var
table1: TADOTable;
.....
begin
.....
table1:=TADOTable . Create( nil );
try
table1 . Connection:=datamodule2 . ADOConnection1;
table1 . TableName:=edit1 . text;
table1 . Open;
table1 . Append;
table1 . FieldByName( 'Numb' ).AsString :=NewDoc . Edit1 . Text;
table1 . Post;
finally
table1 . Free;
end ;
.....
end ;
|