Показать сообщение отдельно
  #2  
Старый 08.11.2013, 18:12
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от 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;
Ответить с цитированием