Цитата:
Сообщение от Scorpuha
Создаю таблицу программно. таблица сама создается, все ОК. а вот значения в поля не записываются. помогите, вот код.
Код:
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 - сразу пропадёт много непонятных глюков.
Во-вторых строка которую я пометил стрелкой неправильная - создавать новый объект нужно не от уже существующего объекта, а от класса:
Код:
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;