Za sada se aplikacija sastoji iz dve forme: OpenForm i MainForm.
Kod za OpenForm je sledeći:
unit Open;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls, Db, DbTables;
type
TOpenForm = class(TForm)
Bevel1: TBevel;
Bevel2: TBevel;
OKBtn: TBitBtn;
CancelBtn: TBitBtn;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label1: TLabel;
Label2: TLabel;
procedure FormActivate(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
OpenForm: TOpenForm;
implementation
{$R *.DFM}
procedure TOpenForm.FormActivate(Sender: TObject);
begin
Session.GetAliasNames(ComboBox1.Items);
end;
procedure TOpenForm.ComboBox1Change(Sender: TObject);
begin
Session.GetTableNames(ComboBox1.Text, '*.*', False, False, ComboBox2.Items);
ComboBox2.Itemindex :=0;
end;
end.
A za Main Form je sledeći:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Grids, DBGrids, Buttons, ExtCtrls, DBCtrls, Db,
DBTables, Open;
type
TMainForm = class(TForm)
querypage: TPageControl;
TabSheet1: TTabSheet;
operacijetb: TTabSheet;
Bevel1: TBevel;
Bevel2: TBevel;
PerformBitBtn: TBitBtn;
DBGrid1: TDBGrid;
Memo1: TMemo;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
Query1: TQuery;
Label1: TLabel;
DBGrid2: TDBGrid;
Openbitbtn: TBitBtn;
CloseBitBtn: TBitBtn;
procedure OpenBitBtnClick(Sender: TObject);
procedure PerformBitBtnClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.OpenBitBtnClick(Sender: TObject);
begin
if OpenForm.ShowModal = mrOk then
begin
Query1.Close;
try
Query1.DatabaseName := OpenForm.ComboBox1.Text;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From ' + OpenForm.ComboBox2.Text);
Memo1.Lines := Query1.SQL;
Query1.Open;
Memo1.SetFocus;
PerformBitBtn.Enabled := True;
except;
ShowMessage('Greška prilikom otvaranja baze');
end;
end;
end;
procedure TMainForm.PerformBitBtnClick(Sender: TObject);
begin
Query1.Close;
try
Query1.SQL := Memo1.Lines;
Query1.Open;
except
ShowMessage('Neispravan Upit');
end;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Query1.Close;
end;
end.
Ideja cele priče je da korisnik izabere Alias i tabelu a da zatim izvršava SQL upite(u Memo polju).
Sve to dobro radi, ali SQL upiti su ograničeni na SELECT komande. Druge komande poput INSERT i DELETE ne poznaje, odnosno neće da izvršava.
Probao sam da promenim
Query1.Open;
u sledeće:
Query1.ExecSQL;
Medjutim tako uopšte ne izvršava SQL naredbe. Molim za pomoć.
Unapred hvala!