[ Ghogilee @ 05.01.2005. 12:31 ] @
Pravim neku vrstu SQL analyzera ali sam naišao na probleme. Za sada se aplikacija sastoji iz dve forme: OpenForm i MainForm. Kod za OpenForm je sledeći: Code: 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: Code: 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 Code: Query1.Open; u sledeće: Code: Query1.ExecSQL; Medjutim tako uopšte ne izvršava SQL naredbe. Molim za pomoć. Unapred hvala! |