当然会出错了,不过只是字符串的写法问题:
在字符中用两个单引号表示一个引号,所以上面的语句改成下面的就没问题了:
sql.add('select * from czb where datea=''1999'' order by a11 desc');

解决方案 »

  1.   

    sql.add('select * from czb where datea<=''1999-12-31'' AND datea=>''1999-01-01'' order by a11 desc');
      

  2.   

    sql.add('select * from czb where datea='''+1999+'''');
      

  3.   

    因为带order返回的query结果是只读的
    所以不能edit
      

  4.   

    笑话,这不是Table ,不能用Edit ,你只能通过SQL进行,可用UPDATESQL,或 用DBGRID 将
    QUERY中的REQUESTLIVE 设为真
      

  5.   

    同意: myoldsaturn(saturn) (2001-12-2 10:51:58) 的意见。
      

  6.   

    上面的问题我基本懂了,谢谢各位帮助。
    下面语句不知道错在那里,主要是将czb.db中的数据复制到czbtem.db中,并以czb.db中的A11字段进行排序,
       query1.Close;
       query1.sql.Clear;
       query1.sql.add('insert into czbtem select * from czb order by a11');
       query1.execsql;
    请教各位应该怎么改才行,谢谢了。
      

  7.   

    xueyin(雪莹) (2001-11-23 11:39:19)  得0分 
    你搞反了啦  select * into table2 From table1table1  是源表,table2是目标表
     
      

  8.   

    select * into czbtem from czb order by all 
      

  9.   

    zswang(伴水)(伤心中)你好,按你说的还是出错,请您再看看。
    我是这样写的:其中A11是czb.db中的数值型字段,czbtem.db是已经存在的表
      query1.Close;
      query1.sql.Clear;
      query1.sql.add('select * into czbtem from czb order by a11');
      query1.execsql;
     
      

  10.   

    因为带order返回的query结果是只读的
    所以不能edit 
      

  11.   

    for sql server7.0(czbtem不存在)
      

  12.   

    czbtem&czb结构一样吗? 
    是的,结构完全一样。
      

  13.   

    下面这句能用
       sql.add('insert into czbtem select * from czb');
    如果加入按A11排序就不行了,不知道是什么原因。
       sql.add('insert into czbtem select * from czb order by a11');
      

  14.   

        
    CSDN首页 | 新闻聚焦 | 共享软件 | 俱乐部 | 开发文档 | 专家门诊 | 招聘求职 | Linux园地 | 程序员杂志 
    --------------------------------------------------------------------------------
     
    我要回复 | 我感兴趣 | 打印贴子 | 推荐给朋友 | 关闭窗口  
    主  题:chechy ,你好,insert into Table2 select * from Table1 这句话怎么用,我怎么试了一下,不行
    作  者:tianwater
    所属论坛:Delphi
    问题点数:20
    回复次数:6
    发表时间:2001-9-25 15:02:04
     
      
       
    回复贴子: 
    回复人: tikkypeng(千两狂死郎) (2001-9-25 15:04:00)  得4分 
    Insert Into Table2(Field1,Field2)//字段名
    Select * From Table1  
    回复人: scu96124678(绿林侠) (2001-9-25 15:07:37)  得4分 
    insert into table2 values(select * from table1)  
    回复人: smallBridge() (2001-9-25 15:11:41)  得4分 
    Table2和Table1中的字段数量、字段类型要保持一致,数量不同肯定出错;字段类型不同则在大部分情况下要出错!  
    回复人: chechy(chechy) (2001-9-25 15:18:30)  得6分 
    你不是说两个表结构一样吗?结构一样这样写时可以的。不一样的话,得
    Insert Into Table2(Field1,Field2)
    Select Field1,Field2 From Table1  
    回复人: tianwater(tianwater) (2001-9-25 15:26:01)  得0分 
    将这句话写在query控件中并Query.ExecSQL;吗!  
    回复人: tikkypeng(千两狂死郎) (2001-9-25 15:34:49)  得2分 
    是的~~   
    --------------------------------------------------------------------------------
     
    我要回复:(请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德)  
    如果你只是觉得这个贴子好,而没想留言的话,请点击后面的贴子提前连接。   
    返回问题 | 关闭窗口   
       
     
               
    美达美简介 广告服务 英语步步高 程序员大本营 百联美达美科技有限公司  版权所有 
     
      

  15.   

    'select * from czb order by a11'
    能执行吗?看看先
      

  16.   

    这句能通过
    'select * from czb order by a11'
      

  17.   

    //解决先
    var
      vFieldNames: string;
    begin
      QueryTemp.RequestLive := True;
      QueryTemp.SQL.Text := 'SELECT * FROM czbtem';
      QueryTemp.Open;  Query1.SQL.Text := 'SELECT * FROM tem ORDER BY a11';
      Query1.Open;  vFieldNames := StringReplace(Tirm(Query1.FieldList.Text), #13#10, ';', [rfReplaceAll]);  while not Query1.Eof do begin
        QueryTemp.Append;
        QueryTemp[QueryTemp] := Query1[QueryTemp];
        QueryTemp.Post;
        Query1.Next;
      end;
    end;
      

  18.   

        QueryTemp[vFieldNames] := Query1[vFieldNames];
    //            ~~~~~~~~~~~            ~~~~~~~~~~~