請問一下,如果使用ParamCheck:=False的話,參數無法使用如下列程式碼所列:
procedure TForm1.Button3Click(Sender: TObject);
var
ws: Widestring;
begin
ws:=TntEdit1.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.ParamCheck:=False;
ADOQuery1.SQL.Text := 'UPDATE c_emp_desc_t set emp_name2=:UEMP where emp_no=''9120475'' ';
//ADOQuery1.SQL.Text := 'update c_emp_desc_t set emp_name2=''' ws ''' where emp_no=''9120475'' ';
//ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);
MessageBoxW(Handle, PWideChar(ws), 'read WideString', MB_OK);
ADOQuery1.Parameters.ParamByName('UEMP').DataType:=ftWideString;
ADOQuery1.Parameters.ParamByName('UEMP').Value :=ws ;
ADOQuery1.ExecSQL;
end;
但如修改成不使用參數,程式可執行但仍無將字串(äää)塞入
procedure TForm1.Button3Click(Sender: TObject);
var
ws: Widestring;
begin
ws:=TntEdit1.Text;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.ParamCheck:=False;
//ADOQuery1.SQL.Text := 'UPDATE c_emp_desc_t set emp_name2=:UEMP where emp_no=''9120475'' ';
ADOQuery1.SQL.Text := 'update c_emp_desc_t set emp_name2=''' ws ''' where emp_no=''9120475'' ';
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);
MessageBoxW(Handle, PWideChar(ws), 'read WideString', MB_OK);
//ADOQuery1.Parameters.ParamByName('UEMP').DataType:=ftWideString;
//ADOQuery1.Parameters.ParamByName('UEMP').Value :=ws ;
ADOQuery1.ExecSQL;
end;