什么意思?说清楚啊,,,
比如;
SELECT * FROM Table Where DayCode=:DayCode
比如;
SELECT * FROM Table Where DayCode=:DayCode
解决方案 »
- 各位高手帮帮忙解答Raised exception class EInvalidOperation with message 是什么一情况
- 给段窗体关闭重新打开的代码
- 顶的都有分,博客几天都打不开,把分用完算了,再也不来csdn了!
- 招JAVA开发人员,限成都,有意者内详!
- 简单问题!急!dbgrid 与 edit 问题!可用分就这么一点点了,帮忙解决马上送分!!!
- 招聘软件开发人员(工作地点石家庄)
- 很简单的一个问题
- 如何解决这个问题,关于方便用户输入的选择框
- 如何在程序运行的时候往Image组件中载入jpg图像?
- 一个Query的奇怪问题
- 如何取得dbgrid的当前cell的行和列?
- 谁能送我几个图标?感激涕零!!!
写一个function即可:
function getData(const xBeginDay,xEndDay: WideString):Integer; safecall;
var
xSQL:String;
begin
xSQL := 'Select * From $TableName Where Day1>= :xBeginDay and Day2 <= xEndDay and Other_Conditions';
QryTemp.Close;
QryTemp.SQL.Clear;
QryTemp.SQL.Add(xSQL);
QryTemp.ParamByName('xBeginDay').AsDate := StrToDate(xBeginDay);
QryTemp.ParamByName('xEndDay').AsDate := StrToDate(xEndDay);
QryTemp.Open;
ReSult := QryTemp.RecordCount;
end;
function getData(const xBeginDay,xEndDay: WideString):Integer; safecall;
var
xSQL:String;
begin
xSQL := 'Select * From $TableName Where Day1>= :xBeginDay and Day2 <= xEndDay and Other_Conditions';//有两个参数的SQL语句,表示取两个参数间的数据,
QryTemp.Close;//关闭TQurey控件
QryTemp.SQL.Clear;//清空SQL属性
QryTemp.SQL.Add(xSQL);//添加SQL
QryTemp.ParamByName('xBeginDay').AsDate := StrToDate(xBeginDay);//添加参数1(开始日期)
QryTemp.ParamByName('xEndDay').AsDate := StrToDate(xEndDay);//添加参数2(结束日期)
QryTemp.Open;//查询
ReSult := QryTemp.RecordCount;//返回记录数
end;//懂了吧
var
xSQL:String;
begin
xSQL:=' ';
while BeginDate<=EndDate do
begin
if BeginDate<>EndDate then
xSQL := xSQL+'Select * From TableName Where FieldDate =BeginDate union'
else
xSQL := xSQL+'Select * From TableName Where FieldDate =BeginDate'
BeginDate:=BeginDate+1;
end;
end;
这是利用Function来实现Delphi中的查询的……
在这里,你必须为程序设立各数据组件的关系与设置:QryTemp: TQuery; 位于DataModule中
object RDM: TRDM //TRemoteDataModule的组件与关系
OldCreateOrder = False
OnDestroy = RemoteDataModuleDestroy
Left = 195
Top = 104
Height = 305
Width = 559
object DB: TDatabase
AliasName = 'ACCOUNT'
DatabaseName = 'acct'
LoginPrompt = False
Params.Strings = (
'USER NAME=ACCOUNT'
'PASSWORD=ACCOUNT')
Left = 56
Top = 16
end
object QryMain: TQuery
AutoCalcFields = False
AutoRefresh = True
DatabaseName = 'acct'
SessionName = 'Session_4'
SQL.Strings = ('select * from ASSDOCHED Where 1=2')
Left = 56
Top = 80
end
object PvdMain: TDataSetProvider
DataSet = QryMain
Constraints = True
Left = 56
Top = 144
end
end
然后执行这个Function,将从数据库中获取对应天数的记录,这个记录集由你的SQL语句与传递的参数决定(在本函数中是写在xSQL 中)function getData(const xBeginDay,xEndDay: WideString):Integer; safecall;//xBeginDay,xEndDay是你要取得的记录的开始时间与结束时间,当然你也可以多设几个参数……
var
xSQL:String;
begin
xSQL := 'Select * From $TableName Where Day1>= :xBeginDay and Day2 <= xEndDay and Other_Conditions';//这是你要执行的查询,由你自已而定,":"后跟的是参数。在QryTemp.ParamByName('xBeginDay')中需要赋值的。 QryTemp.Close;
QryTemp.SQL.Clear;
QryTemp.SQL.Add(xSQL); //这是将你SQL 语句加入,准备执行。
QryTemp.ParamByName('xBeginDay').AsDate := StrToDate(xBeginDay);
QryTemp.ParamByName('xEndDay').AsDate := StrToDate(xEndDay);//这是将参数填值
QryTemp.Open;//执行SQL,
ReSult := QryTemp.RecordCount;//返回取得记录的条数,记录本身将储存在QryTemp中。
end;
begin
Close;
SQL.Clear;
SQL.Add('select * from TableName');
SQL.Add('where xsrjrq between :val1 and :val2');
ParamByName('val1').DataType:=ftDate;
ParamByName('val2').DataType:=ftDate;
ParamByName('val2').asDate:=DateTimePicker2.Date;
ParamByName('val1').AsDate:=DateTimePicker1.Date;
Prepare;
Open;
end;