s_sql_query :=tadoquery.Create(self); s_sql_query.Connection :=ADOConnection1; s_sql_query.Close; s_sql_query.SQL.Clear; WITH s_sql_query.Parameters.AddParameter do begin name :='par_1'; datatype :=ftdate; value :=click_date; end; s_sql_query.SQL.Text :='SELECT * from hld1001 WHERE DATE = :par_1' +' and holiday_group_code =' + quotedstr(g_select_group); s_sql_query.Open;
s_sql_query.Connection :=ADOConnection1;
s_sql_query.Close;
s_sql_query.SQL.Clear;
WITH s_sql_query.Parameters.AddParameter do
begin
name :='par_1';
datatype :=ftdate;
value :=click_date;
end;
s_sql_query.SQL.Text :='SELECT * from hld1001 WHERE DATE = :par_1'
+' and holiday_group_code ='
+ quotedstr(g_select_group); s_sql_query.Open;
Query1.Parameters.ParamByName('a').asstring;中的asstring没有声明!这又是什么原因造成的错误啊?!?---
前面的这个是里面的参数 这个是里面的字段
这个是我们赋值进去的 这是是从数据库里获取的
比如
Select aaa from t where name = :name;
我们就需要 这样用ParamByName('name').Value := 'xxx';
Open; //后
我们就可以从数据集里面这样用
ShowMessage(FieldByName('aaa').AsString);**ByName: 表示通过后面的Name去一个数组<或其他容器里里面寻找>
ParamByName: 就是去放参数的Params(这是一个数组)里面 遍历查找
FieldByName: 就是去放字段的Fields(也是一个数组)里面 遍历查找
我如果用Query1.ParamByName('a').value 的形式,就会出现ParamByName没有声明的错误提示,而我已经 uses DBTables 了!偏偏我这个程序要用到ParamByName 真是恼火!
如果我没有说错的话:
以上写法应该针对ADOquery1可能比较好!
query的写法好像有些不同!-------我也不太懂,试着说说吧!
我试着用TQuery试试
// 数据库的字段 是Field...是FieldByName('a').As..(比如AsString) 就是由AdoQuery(Query)去获取数据库中a字段对应的值!
我如果用Query1.ParamByName('a').value 的形式,就会出现ParamByName没有声明的错误提示,而我已经 uses DBTables 了!
// 而ParamByName('a').Value 这个a不是你的数据库中的 与你的数据库无关,是你预设的参数而已 你可以可以把它设为B 或者其他,
比如
Select aaa from t where name = :name;
我们就需要 这样用ParamByName('name').Value := 'xxx'; // 这个表示我们对里面的name参数赋值..
Open; //后
我们就可以从数据集里面这样用
ShowMessage(FieldByName('aaa').AsString);——————————————————
我中间说的很清楚了很简单的一个问题...