ado 連接 sql2000, 更新時出現Error!(30分)

W

wm1010

Unregistered / Unconfirmed
GUEST, unregistred user!
用ado連接sql2000, 當我在更新text字段類型時, 出現"Code page transactions are not
Supported for text data type. From: 950 To: 1252", 請問這是何故呀? ado驅動程序版
本是英文版(Ado2.7).不過我的機沒有裝sql2000的客戶端, 不知是否這個有關?
 
它的意思好象是说text类型不支持事务,
我没碰倒过这样的问题呀
 
修改 sql2000的默认代码页(codepage)
可能你的文本中有中文,但数据库的设置这英文
 
To jsxjd:
我輸入時並沒有中文呀, 這次沒有輸入中文, 但以前的記錄就未必沒有, 這樣有關係嗎?
 
怎麼? 就沒有人知道嗎? 急呀!!!!!
 
急!, 哪位高手救命呀! 不夠分再加!!!這個Error到底是什麼原因?
 
1. Delphi中获得BDE、ADO的错误号
Delphi的数据库对象,如Ttable和TadoTable有以下一些Error事件:OnDeleteError、OnDeleteErro、OnPostError。这些事件的定义如下,都是数据集错误:
type TDataSetErrorEvent = procedure(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction) of object;
property OnPostError: TDataSetErrorEvent;

在这些事件在EdatabaseError中是无法得到错误号的,其中只有Message属性。在发生BDE错误时可如下得到错误号:
if E is EDBEngineError then
showmessage(inttostr(EDBEngineError(E).Errors[0].ErrorCode));
也可以这么写:
if E is EDBEngineError then
showmessage(inttostr((E As EDBEngineError).Errors[0].ErrorCode));
但在发生ADO错误时不能这样: E is EadoError。
其实Ado错误在数据集相应的数据库连接中都有:TadoConnection.Errors。
procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
var
i:integer;
begin
memo1.Lines.Add(inttostr(table1.Connection.errors.count ));
for i:=0 to AdoConnection1.errors.count-1 do
begin
memo1.Lines.Add('number:'+inttohex(AdoConnection1.errors.Number,8 ));
memo1.Lines.Add('NativeCode:'+inttostr(AdoConnection1.errors.NativeError ));
memo1.Lines.Add(inttostr(AdoConnection1.errors.HelpContext ));
memo1.Lines.Add(AdoConnection1.errors.Source );
memo1.Lines.Add(AdoConnection1.errors.SQLState );
memo1.Lines.Add('Description:'+AdoConnection1.errors.Description );
end;
memo1.Lines.Add('error Msg :'+e.message);
end;
NativeError是Foxpro的原生错误号,非常详细,一般用这个来判断发生的错误。Number是Sql错误号,是大的分类,一般一个Number和多个NativeError对应。
这些错误码的信息在文档Drvvfp.hlp中都有。

 
to jsxjd : 請問這又能說明什麼? 我還是會出現此Error! 各位大蛺, 能幫幫忙嗎?
 
顶部