我使用了两个控件:ADOConnection1,设置好了ConnectionString,DefaultDataBase.ADOQuery里设置好connection。其它代码如下:
var
strInputID,strInputPassWord,strGetPass: string;
begin
strInputID := EditID.Text;
strInputPassWord := EditPassWord.Text;
With ADOQuery1 do
begin
close;
sql.clear;
sql.add('SELECT password ');
sql.add('FROM users ');
sql.add('WHERE id = ''' + strInputID + '''');
Prepared;
ExecSql;
end;
strGetPass := ADOQuery1.FieldValues['password'].valuse;
if strGetPass = strInputPassword then
ShowMessage('PassWord is right.')
else
ShowMessage('PassWord is wrong.');
怎么运行的时候,提示field 'Password'没有找到?如果对ADOQuery1.Tstring赋初值,然后ADOQuery1.active设置为真,一运行就出现
access violation at address ~~~ in modules 'msado15.dll',write of address ~~~.
到底是怎么回事?折磨我一天了。
把SQL语句单独写出来。例如下:
var
strSQL : string;
begin
with adoqry1 do
begin
Close;
SQL.Clear;
strSQL := 'SELECT 变量1=MAX(col_1) FROM Table1';
SQL.Add(strSQL);
Open;
end;
end;