-
Всем Привет!
В первой форме при нажатии кнопки Buttun создаётся таблица и переход на следующую форму. Во второй к этой таблице добавляем записи со значениями. (мне нужно простой пример отладить , а остальное я уже навешаю). Первая форма
Код
unit Unit3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;
type TForm3 = class(TForm) ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form3: TForm3;
implementation
uses Unit4;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject); var S:String; begin s := 'CREATE TABLE V(V Int,B Int)'; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s); ADOQuery1.ExecSQL; Form3.Hide; Form4.Show
end;
end.
Вторая форма
Код unit Unit4;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;
type TForm4 = class(TForm) ADOConnection1: TADOConnection; DataSource1: TDataSource; DBGrid1: TDBGrid; ADOQuery1: TADOQuery; Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject); begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM V'); ADOQuery1.Open; ADOQuery1.SQL.Add('INSERT INTO V(V,B)VALUES(2,2)'); ADOQuery1.ExecSQL; ADOQuery1.Close; ADOQuery1.Post
end;
end.
Пишет ошибка в поле FROM. Как исправить? Может WHERE надо? (только какие значения ставить после него не пойму)
Спасибо за участие..............
-
ADOQuery1.SQL.Text := 'INSERT INTO V(V,B)VALUES(2,2)';
-
Я заменил строку на вашу. Выдаёт ............. insert mode.
-
Я заменил строку на вашу. Выдаёт ошибку ............. insert mode.
-
смотрю и слеза прошибает... столько лет прошло, а "кверик" все еще мозги начинающим заси... пудрит.
нафига это все? открыл, закрыл, вставил команду предварительно записав ее в переменную... программист граффоман? все что у тебя в программе делается это -
ADOConnection1.Execute('CREATE TABLE V(V Int,B Int)'); ADOConnection1.Execute('INSERT INTO V(V,B)VALUES(2,2)');
все. остальное, лишнее, в том числе и ошибки из-за путаницы в лишних действиях.
p.s. пока не поздно, т.к. еще ничего не знаешь и переучиваться не придется, выкинь ADOQuery, ADOTable, ADOProcedure, учись пользоваться компонентами "по контексту" ADOCommand (вариант выше не универсальный, пойдет только если нет параметров) для команд и ADODataSet для данных.
-
> ADOQuery1.SQL.Add('SELECT * FROM V');ADOQuery1.Open;ADOQuery1. > SQL.Add('INSERT INTO V(V,B)VALUES(2,2)');
Вы к тексту одного запроса добавили текст другого. Разумется выдает ошибку.
|