insert 失败
procedure TForm1.Button1Click(Sender: TObject);
var
id,name,did:string;
begin
id := trim(edit1.Text);
name := trim(edit2.Text);
did := trim(edit3.Text);
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add( 'insert into employee values(:id,:name,:did) ');
ExecSQL;
end
end;
3个edit都有值,但为什么报错说插入NULL值(:id 为主键)?初次求解!
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);
var
id,name,did:string;
begin
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add( 'insert into employee values(:id, ' ':name ' ',:did) ');
Parameters[0].Value=trim(edit1.Text);
Parameters[1].Value=trim(edit2.Text);
Parameters[2].Value=trim(edit3.Text);
ExecSQL;
end
end;
或者直接用SQL写吧,不设参数
[解决办法]
楼上正解
也可以使用类似 Parameters.by参数名[ 'id '].value 来赋值
其间加上异常判断 或者判断返回值 以确定插入成功
[解决办法]
SQL.Add( 'insert into employee values( '+trim(edit1.Text)+ ', '+trim(edit1.Text)+ ', '+trim(edit1.Text));