在saide.fdb中建立了一个用于登陆的数据表logintable,UserID 为自增 SQL语句是:create table table(userid int,UserName varchar(20),password varchar(20)) 接着希望向logintable表中插入数据,出现若干错误,代码如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBClient, SimpleDS, SqlExpr, MIDASLIB,
DBXpress, FMTBcd, ComCtrls;type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
SimpleDataSet1: TSimpleDataSet;
datasource1: TDataSource;
btnConnect: TButton;
btnCommit: TButton;
btnQuery: TButton;
DBGrid1: TDBGrid;
lbl1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
SQLQuery1: TSQLQuery;
DateTimePicker1: TDateTimePicker;
Edit4: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
Button3: TButton;
procedure btnConnectClick(Sender: TObject);
procedure btnQueryClick(Sender: TObject);
procedure btnCommitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.btnQueryClick(Sender: TObject);
begin
if not sqlConnection1.Connected then
begin
showmessage('请先连接');
exit;
end;
SimpleDataSet1.DataSet.CommandText:='select * from logintable';
simpleDataSet1.Open;
end;procedure TForm1.btnCommitClick(Sender: TObject);
begin
if simpleDataSet1.ApplyUpdates(0)>0 then
showmessage('提交数据不成功!')
else
showmessage('提交数据成功!');
end;procedure TForm1.FormCreate(Sender: TObject);
begin
if SQLConnection1.Connected=true then
SQLConnection1.Connected:=false;
SQLConnection1.Params.Clear;
SQLConnection1.Params.Values['user_name']:='sysdba';
SQLConnection1.Params.values['password']:='masterkey';
sqlConnection1.Params.Values['SQLDialect']:='3';
SQLConnection1.Params.Values['database']:=extractfilepath(paramstr(0))+'data\saide.fdb';
SQLConnection1.Connected:=true;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
with simpleDataSet1 do
begin SQLQuery1.SQL.Text:='insert into logintable (UserName,password) values ('''+Quotedstr(Edit1.Text)+''','''+Quotedstr(Edit2.Text)+''')'; SQLQuery1.ExecSQL(False);
SimpleDataSet1.Refresh;
end;
begin
if simpleDataSet1.ApplyUpdates(0)>0 then
showmessage('提交数据不成功!')
else
end;
end;
end.
//点击 TForm1.btnQueryClick,出现:table unknown logintable unknown ISC error 336397208
//点击 TForm1.Button1Click,出现:
Token unknown -line 1,column 34 password
//点击 TForm1.btnCommitClick,出现:
SimpleDataSet1:Cannot perform this operation on a closed dataset.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, DBClient, SimpleDS, SqlExpr, MIDASLIB,
DBXpress, FMTBcd, ComCtrls;type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
SimpleDataSet1: TSimpleDataSet;
datasource1: TDataSource;
btnConnect: TButton;
btnCommit: TButton;
btnQuery: TButton;
DBGrid1: TDBGrid;
lbl1: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
SQLQuery1: TSQLQuery;
DateTimePicker1: TDateTimePicker;
Edit4: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
Button3: TButton;
procedure btnConnectClick(Sender: TObject);
procedure btnQueryClick(Sender: TObject);
procedure btnCommitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.btnQueryClick(Sender: TObject);
begin
if not sqlConnection1.Connected then
begin
showmessage('请先连接');
exit;
end;
SimpleDataSet1.DataSet.CommandText:='select * from logintable';
simpleDataSet1.Open;
end;procedure TForm1.btnCommitClick(Sender: TObject);
begin
if simpleDataSet1.ApplyUpdates(0)>0 then
showmessage('提交数据不成功!')
else
showmessage('提交数据成功!');
end;procedure TForm1.FormCreate(Sender: TObject);
begin
if SQLConnection1.Connected=true then
SQLConnection1.Connected:=false;
SQLConnection1.Params.Clear;
SQLConnection1.Params.Values['user_name']:='sysdba';
SQLConnection1.Params.values['password']:='masterkey';
sqlConnection1.Params.Values['SQLDialect']:='3';
SQLConnection1.Params.Values['database']:=extractfilepath(paramstr(0))+'data\saide.fdb';
SQLConnection1.Connected:=true;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
with simpleDataSet1 do
begin SQLQuery1.SQL.Text:='insert into logintable (UserName,password) values ('''+Quotedstr(Edit1.Text)+''','''+Quotedstr(Edit2.Text)+''')'; SQLQuery1.ExecSQL(False);
SimpleDataSet1.Refresh;
end;
begin
if simpleDataSet1.ApplyUpdates(0)>0 then
showmessage('提交数据不成功!')
else
end;
end;
end.
//点击 TForm1.btnQueryClick,出现:table unknown logintable unknown ISC error 336397208
//点击 TForm1.Button1Click,出现:
Token unknown -line 1,column 34 password
//点击 TForm1.btnCommitClick,出现:
SimpleDataSet1:Cannot perform this operation on a closed dataset.
第三个是SimpleDataSet1处于close状态,不能对其操作