ado 链接access数据库出错:(50分)

  • 主题发起人 主题发起人 shiwee
  • 开始时间 开始时间
S

shiwee

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用ado链接access数据库的时候除了一个奇怪的错误:用F7单步执行的时候执行到这句时
出错:
Adoq.SQL.Add('select ' + FieldName);
AdoQ.SQL.Add(' from ' + TableName); (出错之处)
提示为:Project contrAccess.exe raised exception class EAccessviolation with
message 'Access violation at address 0000242e'. in module 'msjet40.dll'. Read
of Address 0000242e'. Process stoped, use step or run to continue.
 
写清楚一点
 
抱歉。
我已经连接到了数据库,而且已经成功进行了其他的操作,代码基本不会有大的问题。我就是想知道
这种错误大概是那方面的,大概有什么引起的。
 
我的代码是这样的.
var
AdoQ: TSQLQuery;
begin
Result := -1;
if AdoC = nil then
Exit;
AdoQ.Close;
AdoQ.SQL.Clear;
AdoQ.SQL.Add(' select DBID '); {-代码1-}
////AdoQ.SQL.Add(' select Max(DBID) as MAXDBID ');{-代码2-}
AdoQ.SQL.Add(' from ' + TableName);
AdoQ.SQL.Add(' where (DBTagID = ' + IntToStr(DBTagID) + ') and (DateTime1 <= :DT )');
AdoQ.Parameters.ParamByName('DT').Value := DT;
try
AdoQ.Open;
except
exit;
end;
我用 代码1 的时候没有错误,可是用 代码2 的时候就有错了,而且出错的地方就是代码2处。也就是说出现了一个 max,错误
信息就是前面提到的信息.但是在 access 中这段代码是完全有效的,无论 代码1、代码2。
我糊涂了。

 
1.你的delphi打了补丁包吗?
2.可能是你的系统的Ado驱动坏掉了.升级mdac试一下.
代码是没问题的.在我的Delphi下测试没问题.
 
我用的delphi6 + win2000。另外,代码几乎未经改动的操纵过sql server 2000。应该不会。。。。。
 
Adoq.SQL.Add('select ''' + FieldName+''');
AdoQ.SQL.Add(' from ''' + TableName+'''');
 
我的 DBID 字段是这样定义的:
DBID AUTOINCREMENT PRIMARY KEY
 
还是没有解决,多谢各位为捧场.
 
你的delphi6大补丁了吗
 
后退
顶部