SQL语句是非常普通的Insert语句(不过字段比较多);
可是为什么在数据库中运行正常,
然后随便在Delphi中新建个程序拉个AdoQuery到界面,
填写到SQL字段中,
运行时候异常提示是Insert语句语法错误...
为什么啊?

解决方案 »

  1.   

    Insert into PSTN_SMS_Linkman_Info(LinkManId,GroupId,Name,NicName,Gender,Birthday,CommemorateDay,Email,QQ,MSN,ICQ,HomePage,NationId,ProvinceId,CityId,Address,PostCode,Fax,CompanyName,Department,Office,Duty,CompanyNationId,CompanyProvinceId,CompanyCityId,CompanyFax,CompanyHomePage,CompanyAddress,CompanyPostCode,SmMusicId,CallMusicId,PictureId,Hobbys,Memo) Values(10,2,'45','df',0,'2006-12-12','2006-12-18','4545','4554','5445','5445','54455454',1,4,1,'5454','54','5445','454545','4554','5454','',1,4,1,'4545','54544444444444444','455454544555555555554545','5454',2,6,3,'45454554','454554') 
      

  2.   

    SQL语法有不一致的地方,比如SQL Server 2000就使用扩展的SQL语句,Delphi用的SQL语法也有区别的,没代码不好说
      

  3.   

    数据表中Birthday、CommemorateDay两个字段是文本类型吗?
    数据表中这34个字段全部是数字型或文本型吗?
      

  4.   

    Birthday、CommemorateDay两个字段是文本类型吗?
    是DateTime类型
    其他的都是数字型或文本型
      

  5.   

    begin
      ADOQuery1.SQL.Text :=
    'Insert into PSTN_SMS_Linkman_Info(' +
    'LinkManId,GroupId,Name,NicName,Gender,Birthday,CommemorateDay,Email,QQ,MSN,ICQ,' +
    'HomePage,NationId,ProvinceId,CityId,Address,PostCode,Fax,CompanyName,Department,' +
    'Office,Duty,CompanyNationId,CompanyProvinceId,CompanyCityId,CompanyFax,' +
    'CompanyHomePage,CompanyAddress,CompanyPostCode,SmMusicId,CallMusicId,' +
    'PictureId,Hobbys,Memo) Values(10,2,''45'',''df'',0,''2006-12-12'',''2006-12-18'',' +
    '''4545'',''4554'',''5445'',''5445'',''54455454'',1,4,1,''5454'',''54'',''5445'',''454545'',' +
    '''4554'',''5454'','''',1,4,1,''4545'',''54544444444444444'',''455454544555555555554545'',' +
    '''5454'',2,6,3,''45454554'',''454554'')';  Memo1.Text := ADOQuery1.SQL.Text; // 输出来看看是不是你要的先
    end;
      

  6.   

    我原来也遇到过这样的问题,
    1.可能超出了string所能容纳的字符数
    2.可能你所付的值已经超出了数据库中定义的限度,
    明白我的意思码
      

  7.   

    回zswang(伴水清清)(专家门诊清洁工):
       Memo1.Text := ADOQuery1.SQL.Text; 输出的结果跟预期的一致.
    回hyjsmeng:
    你说的
    1.可能超出了string所能容纳的字符数
    2.可能你所付的值已经超出了数据库中定义的限度,
    不会出现SQL语法错的提示吧.我这边一个高手帮我解决了问题,
    最后发现是Memo字段和数据库保留的关键字重复了@@
      

  8.   

    'insert into 表名(TDateTime字段) values('+#39+'2006-12-12'+#39+')'