关于sql的问题!(100分)

  • 主题发起人 主题发起人 gladjing
  • 开始时间 开始时间
G

gladjing

Unregistered / Unconfirmed
GUEST, unregistred user!
我做是本地数据库!

问题1:我用下面的一段语句打开一个表。

procedure TForm1.Button10Click(Sender: TObject);
var
opendb: string;
begin
if OpenDialog1.Execute then
begin
opendb := OpenDialog1.FileName;
form1.query1.close;
form1.query1.sql.clear;
form1.query1.databasename:=extractfilepath(opendb);
form1.Query1.SQL.Add('select * from '+extractfilename(opendb));
form1.query1.active:=true;
end;

end;

以下是另一部分的查询,但是做的是固定表的。

with query1 do
begin
close;
sql.clear;
sql.add('select * from one');
sql.add('where 日期 =:a');
parambyname('a').asdate:=strd1;
open;
end;

现在的问题是,我不知道怎么样查询一个随机开会表里的字段。

问题2:如果select语句查不记录,怎样才能弹出一个消息框,提示没有找到记录?


谢谢 ~ 不要笑我菜,我是真的不会!
 
你判斷一下query1的recordcount是否大于0就知道有每有數據啦!
 
1.没有描述清楚,
2.根据Query.IsEmpty判断是否为空
For Example:
if Query1.IsEmpty then
ShowMessage('没有记录!');
 
问题1:
>> sql.add('where 日期 =:a');
最后采用范围,不要相等来做。
怎么样查询一个随机开会表里的字段???

问题2:
with query1 do
begin
close;
....
Open;
end;
if query1.RecordCount <= 0 then
begin
// 提示没有找到记录
end
else
begin
// 找到记录
end;

 
我好象是没说清楚,第一个问题是这样子的!

有一个打开按钮,opendialog打开一个表到dbgrid。这个表的名字是用户取的,不过表的字段是和字段的

属性是已规定死了。问题是怎么样才能取得这个表的表名,做后用select * from 表名(这个表的表名是

不定的)来做查询!

我不知道这样的做法是否可行,是否可以这么做。谢谢 ~ 看来我的表达能力还真不行![:D]
 
问题1:
with query1 do
begin
close;
sql.clear;
sql.add('select * from :TableName');
sql.add('where 日期 =:a');
parambyname('TableName').AsString := OpenDialog.FileName;
parambyname('a').asdate:=strd1;
try
open;
except
// 提示文件不是合法的数据库表格文件。
end;
end;
 
多人接受答案了。
 
后退
顶部