求求大家。。。帮帮我吧(最后100分)已经两天了,没有人给我满意的答复!!!(100分)

  • 主题发起人 主题发起人 柳树林
  • 开始时间 开始时间

柳树林

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=844171 这里的问题

1。SQL中查询两个字段A1长度15(CHAR),A2(DATETIME)格式 例A1=0000000009330 A2=2002-01-01 下午 05:13:15
如何通过A1的后四位,A2的前十位查询。用Tquery,Tadoquery都可以

2。在ini文件中有id1=...,id2=...,id3=... ...... 如何在程序初始时写入combobox列表里
例如11.ini文件
[id]
id1=111
id2=222
id3=333
.......
如何在程序初始时写入combobox列表里,就是在combobox里看到111。222。333。。。。






我想要能执行通过的代码

谢谢!!!
 
靠,对于那种直接说“想要能执行通过的代码”的问题我一般都懒的看
 
to :940801 那你就别看
我都愁死了,你还在这里。。。。。


到底谁能帮我,我是个新手。。。千万不要让我对这里失去信心
 
我想要能执行通过的代码,是因为我对语句里具体的某些变量和参数不会写
 
1. query.text:='select * from table where a1 like ''%' + XXX + ''' and a2 like ''' + YYY + '%''';
其中,XXX是你要找的后四个字符组成的一个字符串,YYY类似。
 
昨天的问题还没搞定吗?
唉唉~
 
对于字符串的截取可以用SQl server的SUbstring函数,但日期在数据库中是按照浮点型存储的,
你取他的前十位有什么作用?
对于第二个问题,等等,我给你写一个参考例子,待会儿上传。
 
1. use substring function



2.
myFile:TIniFile;
vs : TStrings;
procedure OnCreate(sender: TObject);
var
fn, : string;
begin
fn := ExtractFilePath(application.ExecName) + '11.ini';
myFile := TIniFile.Create(fn);
vs.add(myFile.readString('id','id1',youdefaultvalue));
vs.add(myFile.readString('id','id2',youdefaultvalue));
vs.add(myFile.readString('id','id3',youdefaultvalue));
........//maybe you can count it use count
combobox1.items := vs;
end;
 
1.你用Like不就行了,一般‘_’代表单个字符匹配,'%'代表不定数目的字符匹配
如 where A1 like '%abcd'
datetime 类型的字段比较复杂,需转化为字符行字段,如db2中用函数
cast (A2 as char(18)),
或者用 year(A2)=2001 and month(A2)=10 and day(A2)=10 函数将日期字段分开
成年月日,再判断。
2.先读入字符
然后
combobox.clear;
循环执行:
combobox.items.add();不就行了
 
好像TIniFile有个读取所有值为TStrings的方法,再利用其TStrings的QueryValue

得到每个值手边无Delphi(在网吧),应该是这样,仔细查帮助
 
to : wlmmlw
第二个问题,我想用循环可以吗。你这个方法我已经在用


to:碧玉银淑
我要做查询,数据库里A2:=2002-01-01 下午 05:13:15 我想查询日期为2002-01-01 的
一天内的数据,能写出来吗
 
写好了,也调试过了,要注意什么你应该能看出来吧
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,inifiles;

type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
TempStr: string;
TempIniFile: TIniFile;
i : Integer ;
begin
TempIniFile := nil;
TempStr := ExtractFilePath(Application.ExeName) + '11.ini';
If Not FileExists(TempStr) THen
Begin
ShowMEssage('没有配置文件');
Exit;
End;
try
ComboBox1.Items.Clear ;
TempIniFile := TIniFile.Create(TempStr);
For I := 1 to 3 do
Begin
ComboBox1.Items.Add(TempIniFile.ReadString('Id', 'id'+IntToStr(i), ''));
End;
TempIniFile.Free;
except
if Assigned(TempIniFile) then TempIniFile.Free;
end;
end;

end.
 
可以给分了,上面两位朋友的答复已经很清楚了 !!!!
 
不,白化病
 
1.用LIKE即可
'select * from table where a1 like ''%' + 9330+ ''' and a2 like ''' + YYY + '%''';

2。对INI文件
在USES 中加入 inifiles
procedure TForm1.FormActivate(Sender: TObject);
const idcount=7;
var
MyIniFile: TIniFile;
i:integer;
s_id:String;
begin
try
MyIniFile := TIniFile.Create('11.ini');//若指定11.ini文件路径的话同时指定,否则在WINDOWS目录下
for i:=1 to idcount do
begin
s_id:=MyIniFile.ReadString('id','id'+intToStr(i),'');
if s_id<>'' then
ComboBox1.Items.Add(s_id);
end;
finally
MyIniFile.Free;
end;
end;
 
谢谢:碧玉银淑
就剩第一个问题了
 
在ORACLE中
SELECT * FROM TABLE WHERE TO_CHAR('YYYY-MM-DD',A2)='2002-01-01'
我想其他数据库中也应有相应的转换函数
 
TO_CHAR('YYYY-MM-DD',A2)
MSSQL中:
year(A2),month(A2),day(A2)
 
用Convert(char,send_date,20) like '2001-12-01%' 这种进行转换,注意第三个参数,他是
转换后的格式标示
 
谢谢大家分不多。将就吧
没得到分的朋友,很抱歉。以后会补上的
 
后退
顶部