参见程序 - delphi - help - borland database engine - local sql quide
单引号、双引号一般没有区别。

解决方案 »

  1.   

    sql 是由 数据库服务器;数据库驱动程序解释执行
    的所以 sql首先要满足数据库的要求select * from where a='a1'
    在delphi 中query.sql.clear
    query.sql.add('select * from where a=''a1''');就是原来要求出现 单引号 的地方 用两个单引号去置换
    a1  要用edit1.text 来代替query.sql.add('select * from where a='''+edit1.text+'''');把原来的sql 分为了三部分
    前后两个字符传 中间是变量
      

  2.   

    VAR
    SQLSTR:STRING;
    BEGIN
    SQLSTR:='SELECT * FROM TABLE WHERE ';
    SQLSTR:='YOURNANE='+''''+NAMESTR+'''';
    ADOQUERY.CLOSE;
    ADOQUERY.SQL.ADD(SQLSTR);
    ADOQUERY.OPEN;
    END;
      

  3.   

    vat
     last,strsql:string;
    ///////////////////////////
    last:=formatdatetime('yyyy-mm-dd',date);
        strsql:=' delete houseorderinfo';
        strsql:=strsql+' where lastdate < ''%s''';
        strsql:=format(strsql,[last]);
    with Query1 do
        begin
          close;
          DatabaseName := DMbasic.Database.DatabaseName;
          sql.clear;
          sql.text:=strsql;
          prepare;
          execsql;
        end;
      

  4.   

    const
      SSelect = 'select * from %s where Field1=''%s'' and Field2=%s and Field3=%d';
    begin
      with Query1 do
      begin
        Close;
        SQL.Text := Format(SSelect, ['tablename', 'field1Value', 'Field2Value', 10]);
       Open;
      end;
    end;用Format函数一目了然,用参数很麻烦。
      

  5.   

    单引号、双引号没有区别。 
    你就当他是一个简单的字符串处理!推荐,每次试处理,先把字符串打出来!
    然后用类是sql执行器之类执行一下试试,不成功就把
    上面字符串处理修改一下!
      

  6.   

    动态查询:
    strcond:=' where myFind=:Find ';
    Query.Close
    Query.SQL.Clear;
    Query.SQL.Add('select * from talbe ');
    Query.SQL.ADd(strcond);
    Query.ParamByName('Find').AsString:=Eidt1.Text;
    Query.Open;
    等等,自己最好找本书来看看
      

  7.   

    以星期或月为单位对数据库进行统计的语句
     在SQL SERVER 里面:
    SELECT SUM(Field_balance) FROM log GROUP BY DATEPART(WK,Field_date)DATEPART()函数会以一个整数的形式返回一个DATETIME类型值的一部分,
    WK是WEEK的简写,它的范围是1-53。你也可以用DATEPART(MM,Field_date)来取
    得月份的值(1-12)。诸如此类的YY(YEAR,1753-9999),DD(DAY,1-31),HH(HOUR,0-23).....需要这么写:
    SELECT DATEPART(WK,Field_date),
      SUM(Field_balance) FROM log GROUP BY DATEPART(WK,Field_date)
    如果是 DESKTOP(PARADOX) ,没有DATEPART(),只有EXTRACT(month,field_date)
    似乎可用:
    select saledate,sum(amountpaid)
    from ":bcdemos:orders"
    group by extract(month,saledate)或extract(year,saledate),extract(day,saledate).etc. 
     
      

  8.   

    写用变量代理 sql 语句时当条件中为字符或者日期时要加入 '''' 四个引号,使句子很不方便看,
    可以用这个技巧试验一下:
    Scmd:='select * from aa where '+#39+字符+#39;
    用 #39 代替原来的四个单引号,这样看起来容易些,也比较方便!
      

  9.   

    用SQL语句如何实现对时间差的计算,并且以之为单位进行检索?举个例子来说,如何从A表中检索出与当前系统日期相差150天的记录?
    用的是ACCESS库,用长日期字段(如:1999年9月9日),SQL语句可以实现对数值的计算,也可以实现对时间的差值计算吧,单位是天。听说ACCESS可以把日期转换成一个整数,然后进行计算,请详细讲讲
      

  10.   

    对,应该把时间换算成一个整数,然后相减即可。
    以前我们还有这个计算过当前某人的年龄。
    基本上各种数据库都提供了这些函数,用于在各种类型之间的转换。这个应数据库不同而不同。
    可以查数据库的具体帮助。
    象ib6,是case函数
      

  11.   

    谢谢!有例程吗?用这个函数是在SQL语句中吗?
      

  12.   

    对初学者最好的办法之一,使用Delphi的SQL Explorer,他能根据你可视化的操作表,如打开、选择、删除、修改等自动产生SQL代码显示出来。
      

  13.   

    头大之后是怡然自得,还是学好怎么在Delphi中写SQL吧。
    不过不能光看Delphi的书,要结合讲解SQL语法的书最好。
      

  14.   

    两个日期变量在delphi中能直接相减得到两个日期相差的天数
    两个时间变量在delphi中能直接相减得到两个时间相差的时间 hh:mm:ss