查询字段(取值于combobox1) 匹配条件(取值于 combobox2)值为= < > <>
查询值 (取值于 EDIT1.text)
联接关系(取值于combobox3)关系 and或or
查询字段(取值于combobox4) 匹配条件(取值于 combobox5)值为= < > <>
查询值 (取值于 EDIT2.text)
联接关系(取值于combobox6)关系 and或or
查询字段 (取值于combobox7)匹配条件(取值于 combobox8)值为= < > <>
查询值 (取值于 EDIT3.text)详细说明联接关系的处理方法。
查询值 (取值于 EDIT1.text)
联接关系(取值于combobox3)关系 and或or
查询字段(取值于combobox4) 匹配条件(取值于 combobox5)值为= < > <>
查询值 (取值于 EDIT2.text)
联接关系(取值于combobox6)关系 and或or
查询字段 (取值于combobox7)匹配条件(取值于 combobox8)值为= < > <>
查询值 (取值于 EDIT3.text)详细说明联接关系的处理方法。
query.sql.text := 'select * from tablename where '+combobox1.Items[combobox1.ItemIndex]+'='+combobox2.items[combobox2.itemindex];
查询字段(取值于combobox1) 匹配条件(取值于 combobox2)值为= < > <>
查询值 (取值于 EDIT1.text)
联接关系(取值于combobox3)关系 and或or
查询字段(取值于combobox4) 匹配条件(取值于 combobox5)值为= < > <>
查询值 (取值于 EDIT2.text)
联接关系(取值于combobox6)关系 and或or
查询字段 (取值于combobox7)匹配条件(取值于 combobox8)值为= < > <>
查询值 (取值于 EDIT3.text)var SQLstr:string;
begin
SQLstr:=combobox1.text+' '+combobox2.text+' '+edit1.text;
if combobox3.text<>'' then
begin
SQLstr:=SQLstr+' '+combobox3.text+' '+combobox4.text+' '+combobox5.text+''+edit2.text;
end;
if combobox6.text<>'' then
begin
SQLstr:=SQLstr+' '+combobox6.text+' '+combobox7.text+' '+combobox8.text+' '+edit3.text;
end;
query1.close;
query1.sql.clear;
query1.sql.add(SQLstr);
query1.open;
end;但我查询时总出现下面错误信息DBISAM Engine Error # 11949 SQL error - select,insert,update,delete,create,alter or drop keyword expected,instead found '编号'
Ctrl+F7,输入query1.sql.text
把他的内容贴出来(SQL)
然后让朋友们分析你说的哪些,哪里有'编号'啊?
匹配条件(取值于 combobox2)值为= < > <> 任选其一。
查询值 (取值于 EDIT3.text)自己录入
'编号 = 001'#$D#$A
SQL语句开头都没有,怎么执行
SQLstr:='select * from '+combobox1.text+' '
~~~~~~~~~~~~~~~ +combobox2.text+' '+edit1.text;
i 服了 U
出现了新问题这个是提示信息:
DBISAM Engine Error # 11949 SQL error - End of SELECT statement expected,instead found '='
SQLstr:='select * from filedata '+FindCB1.text+' '+MatchCB1.text+' '+FindEd1.text;会提示这个错误信息:
DBISAM Engine Error # 11949 SQL error - End of SELECT statement expected,instead found '='
case...of
end;
先这样设置条件,然后动态决定SQL.text
你的Sql语句到底是什么啊?
为什么你贴出来都不完全,这样怎么能说你的没有问题那?
查询语句,至少要完整啊
望请指点。
先用IF,再用CASE的话,那你是怎么处理联接关系的呀!,我总共有两个联接关系的,如果是一个的话就好办了。
ctrl+F5,可以看见sqlstr的值,把现在的sqlstr语句值贴出来看看
'select * from filedata.dat'#$D#$A'编号 = "001"'#$D#$A
你条件前面少了where!还有你的表名呢?是filedata.dat吗?
那这句
SQLstr:=SQLstr+' '+combobox3.text+' '+combobox4.text+' '+combobox5.text+''+edit2.text;
'select * from filedata.dat where'这个要写在哪里呀!
SQLstr:='select * from '+combobox1.text
+' where '+combobox2.text+' '+edit1.text;
老实说,我不太明白你的意思,刚刚学习SQL有必要弄这么复杂的东东吗,
先做一些简单的例子,把SQL的语法熟悉了再循序渐进地做更复杂一点地
例子。这样学习的效果才会好的呀
但是只有第一个条件可以用,第二和第三个还是不能用,
'select * from filedata where'#$D#$A'编号 = "001" And 编号 =和三'#$D#$A
假定:
combobox1.text:='编号'; combobox2.text:='<>'; edit1.text:='001'
combobox3.text:='and' combobox4.text:='学号'; combobox5.text:='>'
edit2.text:='123' combobox6.text:='and' combobox7.text:='班级'
combobox8.text:='=' edit3.text:='456'
则sql语句为
select * from filedata where 编号<>001 and 学号>123 and 班级="456"这是基本的格式,还有条件方面还要涉及到字段类型的不同,格式就不同,
比如班级是一个字符型的字段,那班级条件的值就必须用单引号和双引号
括起来(根据数据库类型的不同决定是单和双引号),而如果字段类型是
整形的话(如编号),条件值就不需要用引号括起来,等等