SQL语句自动换行的问题,怪事! (50分)

  • 主题发起人 主题发起人 jadesun
  • 开始时间 开始时间
J

jadesun

Unregistered / Unconfirmed
GUEST, unregistred user!
语句如下:
ADOQuery1.SQL.Text := 'CREATE TABLE BestTopic (id int IDENTITY (1, 1) NOT NULL CONSTRAINT PK_BestTopic PRIMARY KEY,Announceid int default 0,Rootid int default 0,Boardid int default 0,';
ADOQuery1.SQL.Text := ADOQuery1.SQL.Text+'title varchar(250),PostUserName varchar(50),PostUserID int Default 0,DateAndTime datetime,efault Now(),dExpression varchar(20) NULL)';

结果showmessage(ADOQuery1.sql.text)打印出来变成了:
CREATE TABLE BestTopic (id int IDENTITY (1, 1) NOT NULL CONSTRAINT PK_BestTopic PRIMARY KEY,Announceid int default 0,Rootid int default 0,Boardid int default 0,
title varchar(250),PostUserName varchar(50),PostUserID int Default 0,DateAndTime datetime,efault Now(),dExpression varchar(20) NULL)

Boardid int default 0,

title varchar(250),
中间多了一个换行,造成了SQL语句出错。这是什么原因呢?
 
SQl 是一个tstringlist类型阿。 不是STRING型。
SQL.TEXT是STRING类型。在类型的转换的时候 中间有一个间隔符号。
平时用SQL的时候最好这样用:
ADOQuery1.SQL.CLEAR;
ADOQuery1.SQL.ADD('CREATE TABLE BestTopic (id int IDENTITY (1, 1) NOT NULL CONSTRAINT PK_BestTopic PRIMARY KEY,Announceid int default 0,Rootid int default 0,Boardid int default 0,');
ADOQuery1.SQL.ADD('title varchar(250),PostUserName varchar(50),PostUserID int Default 0,DateAndTime datetime,efault Now(),dExpression varchar(20) NULL)');
 
不是行的原因,你再找找其他的问题。它报什么错误??
 
你这样看看:
var
sSql:String;
begin
sSql:= 'CREATE TABLE BestTopic( '+
'id int IDENTITY (1, 1) NOT NULL CONSTRAINT PK_BestTopic PRIMARY KEY, '+
'Announceid int default 0, '+
'Rootid int default 0, '+
'Boardid int default 0, '
'title varchar(250), '+
'PostUserName varchar(50), '+
'PostUserID int Default 0, '+
'DateAndTime datetime default Now(), '+
'dExpression varchar(20) NULL)';
ADOQuery1.SQL.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.Text := sSql;
end;
这样排版,只是为了好看和 debug.
 
多人接受答案了。
 
后退
顶部