var
ASQL: string;
begin
...
ASQL := 'SELECT * FROM HUZ WHERE STATUS=‘有效’AND TSTATUS=' + Edit1.Text;
Query1.SQL.Text := ASQL;
Query1.Open;
...
end;
ASQL: string;
begin
...
ASQL := 'SELECT * FROM HUZ WHERE STATUS=‘有效’AND TSTATUS=' + Edit1.Text;
Query1.SQL.Text := ASQL;
Query1.Open;
...
end;
begin
close;
sql.clear;
sql.add('select * FROM HUZ WHERE STATUS='''有效'''AND TSTATUS=:EDIT1');
params[0].asstring:=edit1.text;
open
end;
如:设TSTATUS伟字符串型
Query1.SQL.Add('SELECT * FROM HUZ WHERE STATUS=''有效''AND TSTATUS '+''''+Edit1.Text +'''';不过我觉得还是用参数比较好。象这样:
Query1.SQL.Add('SELECT * FROM HUZ WHERE STATUS=''有效''AND TSTATUS=:TSTATUS');
Qusry1.ParamByName('TSTATUS'):=Edit1.Text;ps:我不是高手
...
Query1.ParamByName('TSTATUS').asstring := Edit1.Text;
procedure xxx.xxx();
var sql_str:string;
begin
sql_std:='SELECT * FROM HUZ WHERE STATUS='有效'AND TSTATUS=:TSTATUS';
Query1.close;
Query1.sql.clear;
Query1.sql.add(sql_std);
Query1.ParamByName('TSTATUS').asstring:=edit1.text;
try
Query1.open;//或者是 Query1.execsql;
except
//错误处理
end;
end;
对表文件HUZ,以字段PASS_NUM和TSTATUS为关键字段,以这两个字段的内容为条件,条件从两个TEDIT控件中输入.是不是可以像下面这样编写我的SQL语句呢?Query1.SQL.Add('SELECT * FROM HUZ WHERE PASS_NUM=:PASSNUM AND TSTATUS=:TSTATUS');
Qusry1.ParamByName('TSTATUS'):=Edit1.Text;
Qusry1.ParamByName('PASS_NUM'):=Edit2.Text;或者是:PROCEDURE XXXX
var sql_str:string;
begin
sql_std:='SELECT * FROM HUZ WHERE PASS_NUM=:PASS_NUM AND TSTATUS=:TSTATUS';
Query1.close;
Query1.sql.clear;
Query1.sql.add(sql_std);
Query1.ParamByName('TSTATUS').asstring:=edit1.text;
Query1.ParamByName('PASS_NUM').asstring:=edit2.text;
Query1.open;//或者是 Query1.execsql;
end;
另外:
sql_std:='SELECT * FROM HUZ WHERE PASS_NUM=:PASS_NUM AND TSTATUS=:TSTATUS';
中 PASS_NUM=:PASS_NUM --你没必要非要把这两边写成一样,右边的名字你可以随便取啊,如:PASS_NUM=:PASS 也行的。数据库的写代码都是很简单的---最主要就是写多了很烦。向上面几句就在数据库程序中经常甬道。 tquery控件用起来也最灵活。----当然,代价就是多写几句咯! 今天没事做--来放点水~~~~~~~~~~~~~~~`
如果在设计时,不对TQUERY的SQL属性中添加带参数的SELECT语句,运行时提示"parameters not found!".如果如果在设计时,对TQUERY的SQL属性中添加带参数的SELECT语句,运行时却提示"can not found object!".这是为什么???!!!我使用的是DELPHI 5 + ORACLE 8I.求救呀!各位.下面的代码是专门用于查询记录的,登录界面运行是完全正常的,ORACLE 8I的数据库也是正常连接的.unit oraquery;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, DBGrids, StdCtrls;type
TForm2 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Query1: TQuery;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.DFM}procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
application.terminate;
end;procedure TForm2.Button1Click(Sender: TObject);
begin
if edit1.text<>'' then
begin
query1.close;
query1.sql.clear;
query1.sql.add('select * from huz where status=''有效'' and tstatus=:tstatus');
// query1.params[0].asstring:=edit1.text;
query1.parambyname('tstatus').asstring:=edit1.text;
query1.open;
end
else
showmessage('Invailid value inputted!');
end;procedure TForm2.Button2Click(Sender: TObject);
begin
close;
application.terminate;
end;end.
你在open之前,把query1.sql.text打出来看看嘛。
可能试你那个参数的属性没配好。
query1.params属性有个小编辑框,可以具体设置某个具体的param,
你设一下,看看!
可能是你的oracle8I于bde之间的联系配置,没配好,
但这个,不好意思,我不会。没试过
SQL和DELPHI还不熟悉,就想用DELPHI+ORACLE 8I????
还是学习些简单的东西吧,编程不是简单的东西呀!!!!!
用ODBC一定能解决问题吗?
不好意思,ODBC又该怎么使用呢?