当我尝试从MS访问数据库中获取信息时,我一直收到同样的错误。以下是我的编码。
var
iTemp, iX, iY, k : Integer;
sDate : String;
begin
iTemp := 0;
DB.Close;
DB.SQL.Add('SELECT Count(UserID) AS Total FROM tblResults;');
DB.Parameters.ParamByName('ID').Value := pID;
DB.ExecSQL;
DB.Open;
iTemp := DB.FieldByName('Total').AsInteger;
if iTemp = 0 then
ShowMessage('Sorry but we do not have any test results for you. Take a test and check your result !')
else
Begin
DB.Close;
DB.SQL.Add('SELECT Mark,DateTested AS Total FROM tblResults WHERE UserID=:ID;');
DB.Parameters.ParamByName('ID').Value := pID;
DB.ExecSQL;
DB.Open;
for k := 1 to iTemp do
Begin
iX := k;
iY := DB.FieldByName('Mark').AsInteger;
sDate := DB.FieldByName('DateTested').AsString;
Chart1.Series[0].AddXY(iX,iY,sDate,clTeeColor);
DB.Next;
End;
Db.Close;
End;
错误是
语法errpr。在查询表达式'Username =“SELECT Count(UserID)AS Total FROM tblResults'
我真的不承认这个错误。请帮我把这件事搞定。
答案 0 :(得分:0)
我不知道Delphi(只有MS Access),但代码中的一件事对我来说仍然很奇怪:
您的错误消息显示错误发生在“查询表达式'Username =”[the SQL string from your code]
中。
您使用以下代码将SQL字符串传递给您的查询:
DB.SQL.Add('SELECT Count(UserID) AS Total FROM tblResults;');
当您使用DB.SQL.Add('...')
(而不是DB.SQL = '...'
)时,我怀疑DB.SQL
可能已经在代码的开头包含了某些内容。
'Username=
部分还应该来自哪里?