奇怪!!(100分)

  • 主题发起人 主题发起人 defox
  • 开始时间 开始时间
D

defox

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家看如下代码:
procedure ……Button1Click(Sender: TObject)
var
LName : String;
begin
LName := Edit1.Text;
With Query1 do begin
Close;
Sql.Clear;
Sql.Add('CEARTE TABLE'+ LName);
Sql.Add('(Name varchar(10) not null,Birthday date not null,');
Sql.Add('Address varchar(50) not null)');
Try
ExecSQL;
Except
……
end;
end;
end;
程序运行。如果在Edit1中输入英文点击button1则表格可以建立,如果输入中文点击button1则会提示错误信息,请问这是为什么?如果,我一定要动态建立表格名为中文字符的表格,这个SQL语句该如何修改?
谢谢大家!请帮个忙!!
 
Edit1不处理双字节,改RichEdit?!
 
会不会是有些数据库不支持 中文名的Table?
 
>>我一定要动态建立表格名为中文字符的表格
有这个必要吗?很多数据库都不支持中文字段,何况是中文表名。
 
我在delphi的sql explorer 中对该数据库使用上面的sql 语句,执行可以成功。
我用的是sybase sql anywhere 5.5的数据库。
 
是不是LName中有空格或者特殊字符呢。
用trim(LName)试试。
 
我用过trim了,可就是报错,不能创建。
 
》 Sql.Add('CEARTE TABLE'+ LName);
改成 Sql.Add('CEARTE TABLE '+ LName); //要多写一个空格!

 
都说英文可以了。
 
我解决了,应该这样写
sql.add('CREATE TABLE '+'"'+LName+'"');
 
OIC下次我也注意了:)
 
多人接受答案了。
 
sql 语句不支持中文字段!
 
后退
顶部