我用的是英文操作系统XP,开发的软件本来都是用英文的,但是现在要汉化,于是碰到了许多问题,现在许多问题都解决了,但是最后一个问题却始终解决不了。我用的 DELPHI 5. 数据库是MS SQL 2000. 因为我单位的DELPHI 5是正版的,所以即使有D版的 DELPHI 7, 我还是不用。另外补丁过的DELPHI 5也没有什么太多的BUG,所以还可以。从DELPHI 5迁入到DELPHI 7,也有许多麻烦,所以不高兴换。现在的问题是: 我用TADOTABLE可以存放汉字数据,但是用TADOQUERY自己构造SQL语句, 却不能把汉字存放进去,即存入的数据都是逗号.我知道存放汉字的两条方法,一是把数据构造成nvarchar, 另外是insert 语句中加入 N字符串.现在用TADOTABLE, 我用
ATBLJOURNAL['JOURNAL'] := MEMO1.LINES[i];
就可以圆满解决。但是因为 TADOTABLE.open 打开的时候,会用大量的资源,会很慢,尤其是个日志文件,数据是非常大量的。所以我不喜欢用。
但是用INSERET语句: 'INSERT INTO JOURNAL VALUES(:JOURNAL)'
在参数替代的时候:myQuery.Parameters.Paramvalues['JOURNAL'] := MEMO1.LINES[i]
总是插入的是非汉字代码,这个字段是可以直接编辑输入汉字的。自己在想每次循环的时候,用一个字符串把LINES[i]的值直接替代出来,构成例如 :
INSERT INTO JOURNAL VAULES(n'中文数据')这样的SQL语句可能是可以的, 但是每次需要一组指令:
myQuery.Close
myQuery.SQL.Clear
myQuery.SQL.Add()
myQuery.SQL.Open
实在缺乏美感。
现在很觉得不舒服,各位高手有什么指教,谢谢。
ATBLJOURNAL['JOURNAL'] := MEMO1.LINES[i];
就可以圆满解决。但是因为 TADOTABLE.open 打开的时候,会用大量的资源,会很慢,尤其是个日志文件,数据是非常大量的。所以我不喜欢用。
但是用INSERET语句: 'INSERT INTO JOURNAL VALUES(:JOURNAL)'
在参数替代的时候:myQuery.Parameters.Paramvalues['JOURNAL'] := MEMO1.LINES[i]
总是插入的是非汉字代码,这个字段是可以直接编辑输入汉字的。自己在想每次循环的时候,用一个字符串把LINES[i]的值直接替代出来,构成例如 :
INSERT INTO JOURNAL VAULES(n'中文数据')这样的SQL语句可能是可以的, 但是每次需要一组指令:
myQuery.Close
myQuery.SQL.Clear
myQuery.SQL.Add()
myQuery.SQL.Open
实在缺乏美感。
现在很觉得不舒服,各位高手有什么指教,谢谢。
在参数替代的时候:myQuery.Parameters.Paramvalues['JOURNAL'] := MEMO1.LINES[i]
总是插入的是非汉字代码,这个字段是可以直接编辑输入汉字的。 我一般都是使用得带参数得sql语句,没遇到你得现象啊。我想问题是出在:= MEMO1.LINES[i]上,跟踪一下试试看,最简单得方法是把他showmessage出来看看。
我也用过delphi5+sql2000,从未遇到过你的问题啊,不过我的windows是中文版。不行得话使用 可变体参数看看?
'INSERT INTO JOURNAL VALUES(:JOURNAL)'
在参数替代的时候:myQuery.Parameters.Paramvalues['JOURNAL'] := MEMO1.LINES[i] 这就是可变参数啊另外,你的memo里的数据是从哪里来的,自己填写的,还是从txt文件加载的,或其他方式得到的
程序产生的,内中有汉字。这个问题和MEMO1.LINES中的内容没有任何关系, 里面包含的是汉字,否则用
ATBLJOURNAL['JOURNAL'] := MEMO1.LINES[i];
是不会成功地存入汉字的。这个问题完全并且唯一只和TADOQUERY有关。
我一向来不太喜欢BORLAND的东西。测试比微软差多了。