insert 失败,该怎么处理
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));
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));