参见程序 - delphi - help - borland database engine - local sql quide
单引号、双引号一般没有区别。
单引号、双引号一般没有区别。
解决方案 »
- 应用只能打开一个???
- 我用delphi和sql做了一个程序,哪位大是帮我看看还有哪些错错误,我的程序有一两个功能还不能实现
- Pagecontrol上的Tabsheet
- 如何调用有blob字段的oracle存储过程,急!
- CSDN的论坛这几天搞什么了??????
- 一个对小弟我很重要的小程序~大家来帮帮我吧。~动过手的人都可以拿分,都有经验的一定!!
- 编译都通过了,但在调用自定义过程出错
- Delphi中怎样使用SQL server上的ntext类型数据?
- 照着书编程,是关于获取本机ip地址和机器名的,在程序中用到了TWSAData但我编译不过,
- 急救,关于报表中的一个小问题。救救菜鸟!!!!!
- 急!急!急!为何deletefile在win第二版上不起作用?
- 问你们一个巨深巨难的问题。。。
的所以 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 分为了三部分
前后两个字符传 中间是变量
SQLSTR:STRING;
BEGIN
SQLSTR:='SELECT * FROM TABLE WHERE ';
SQLSTR:='YOURNANE='+''''+NAMESTR+'''';
ADOQUERY.CLOSE;
ADOQUERY.SQL.ADD(SQLSTR);
ADOQUERY.OPEN;
END;
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;
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函数一目了然,用参数很麻烦。
你就当他是一个简单的字符串处理!推荐,每次试处理,先把字符串打出来!
然后用类是sql执行器之类执行一下试试,不成功就把
上面字符串处理修改一下!
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;
等等,自己最好找本书来看看
在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.
可以用这个技巧试验一下:
Scmd:='select * from aa where '+#39+字符+#39;
用 #39 代替原来的四个单引号,这样看起来容易些,也比较方便!
用的是ACCESS库,用长日期字段(如:1999年9月9日),SQL语句可以实现对数值的计算,也可以实现对时间的差值计算吧,单位是天。听说ACCESS可以把日期转换成一个整数,然后进行计算,请详细讲讲
以前我们还有这个计算过当前某人的年龄。
基本上各种数据库都提供了这些函数,用于在各种类型之间的转换。这个应数据库不同而不同。
可以查数据库的具体帮助。
象ib6,是case函数
不过不能光看Delphi的书,要结合讲解SQL语法的书最好。
两个时间变量在delphi中能直接相减得到两个时间相差的时间 hh:mm:ss