delphi 向数据库插入数据问题
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Searchdata(ADO:TADOQuery;Str:string);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Searchdata(ADO:TADOQuery;Str:string);
begin
try
ADO.Close;
ADO.SQL.Clear;
ADO.SQL.ADD(Str);
ADO.ExecSQL;
except
ShowMessage('错误');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Searchdata(ADOQuery1,'insert into yjszsmlxt_bs_xydmb(xlh,xydm,xymc) values('21','021','lixu')');
end;
end.
[Error] Unit3.pas(43): Statement expected but 'PROCEDURE' found
[Error] Unit3.pas(46): Missing operator or semicolon
[Error] Unit3.pas(46): ')' expected but identifier 'lixu' found
[Error] Unit3.pas(19): Unsatisfied forward or external declaration: 'TForm1.Searchdata'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit3.pas'
程序和报错我都贴了上来, 我怀疑是过程定义有问题 sql语句写的应该也有问题 一堆单引号 不知道行不行
高手指点一下好不??数据库已经连上了 在线等!!
[解决办法]
values('21','021','lixu')
SQL语句中的字符串用双引号——values(''21'',''021'',''lixu'')
不然引号无法匹配的
[解决办法]
- Delphi(Pascal) code
unit Unit3;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;type TForm1 = class(TForm) ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); procedure Searchdata(ADO:TADOQuery;Str:string); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm} procedure Searchdata(ADO:TADOQuery;Str:string);begin try ADO.Close; ADO.SQL.Clear; ADO.SQL.ADD(Str); ADO.ExecSQL; except ShowMessage('错误'); end;end; // 这里少了个 endprocedure TForm1.Button1Click(Sender: TObject);begin Searchdata(ADOQuery1,'insert into yjszsmlxt_bs_xydmb(xlh,xydm,xymc) values('21','021','lixu')');end;end.
[解决办法]
推荐楼主 使用 cnpack 这样就不会犯这种错误了
[解决办法]