我在Adoquery的PostError中寫如下代碼時提示Invalid class typecast錯誤,要怎麼解決.
if (E as EDBEngineError).Errors[0].Errorcode=eKeyViol then我在前面已經定義:
Const
eKeyViol=9729;我看了很多例子都是這樣的,我運行總是錯誤.
if (E as EDBEngineError).Errors[0].Errorcode=eKeyViol then我在前面已經定義:
Const
eKeyViol=9729;我看了很多例子都是這樣的,我運行總是錯誤.
解决方案 »
- 再追加100分,关于这段代码哪里需要修改?一共200分...
- 离职以我妥协告终。放分,憋却了好几天。顺便帮忙看看我该买哪个笔记本。
- 求购人事考勤系统源码
- 文件操作小问题:我用append方法向*.txt文件中插入记录。请问怎样插入回车啊?我要把记录分开!
- 问stringGrid的问题,散50分给主要解答人!
- 求排序函数
- 如何将一很长的16进制的字符串转换为Byte型数组?
- 如何做一个窗口,在其他窗口最大化时不占据它的位置?就像Windows的任务栏窗口。
- 急!!如何显示系统给出的异常信息?在线等待!
- 请问如何实现RM的播放啊?
- 请教高手,急急急!MIDAS多层数据库开发问题,UP有分!
- 关于FastReport存入数据库的问题,急!!!在线等待!!!
(E as EDBEngineError).Errors[0].Errorcode 应该是返回word类型.
怎么会提示类型方面的错误.
ADOExpress组件在发生错误时产生的例外对象并不像BDE/IDAPI一样是EDBEngineError对象,因此我们无法像BDE/IDAPI的应用程序一样从EDBEngineError取得原生的错误代码。如果你检查封装ADOExpress组件的ADODB程序单元,也会发现ADO的错误是由EADOError类别封装的。
{ Errors }
EADOError = class(EDatabaseError );请参考下面:
procedure TForm4.ADODataSet1PostError(DataSet: TDataSet; E:
EDatabaseError; var Action: TDataAction);
var
adoErrors : Errors;
adoError : Error;
iCount : Integer;
begin
/ /开始处理ADO的Errors对象
adoErrors := ADOConnection1.Errors;
for iCount := 0 to adoErrors.Count - 1 do // Iterate
begin
adoError := adoErrors.Item[iCount];
lbADOErrors.Items.Add('Error Number : ' + IntToStr(adoError.Number));
lbADOErrors.Items.Add('Error Source : ' + adoError.Source);
lbADOErrors.Items.Add('Error Description : ' + adoError.Description);
lbADOErrors.Items.Add('Error HelpFile : ' + adoError.HelpFile);
lbADOErrors.Items.Add('Error SQLState : ' + adoError.SQLState);
lbADOErrors.Items.Add('Error NativeError : ' +
IntToStr(adoError.NativeError));
end ; // for
end ;