procedure Tfmtime.BitBtn1Click(Sender: TObject);
var
sqlStr:string;
ListItem: TListItem;
i,j:Integer;
dz_sg:Boolean;
begin
if ((trim(edtYear.Text) = '') or (trim(edtMonth.Text) = '')or (trim(edtday.Text) = '')or
(trim(edtYear2.Text) = '') or (trim(edtMonth2.Text) = '')or (trim(edtday2.Text) = '')) then
begin
ShowMessage('请输入查询年月!');
exit;
end;
lvGr.Items.Clear;
sqlStr := 'select id,mzh,name,yblb,fzkb,doc_code,doc_name,doc_dept,doc_result from inpatient_info'
+' where fzrq <'
+quotedstr(trim(edtday.Text) +'-'+ trim(edtmonth.Text) +'月' +'-'+trim(edtyear.Text))
+' and '
+' fzrq >='
+quotedstr(trim(edtday2.Text) +'-'+trim(edtmonth2.Text) +'月'+'-'+trim(edtyear2.Text)); qryDg1.Close;
qrydg1.sql.clear;
qryDg1.SQL.add(sqlStr);
qryDg1.Open;
qryDg1.First;
for i := 0 to qryDg1.RecordCount -1 do
begin
ListItem:=lvGr.Items.Add;
ListItem.Caption:= Trim(qryDg1.FieldByName('id').AsString);
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('mzh').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('name').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('yblb').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('fzkb').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('doc_code').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('doc_name').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('doc_dept').AsString));
ListItem.SubItems.Add(Trim(qryDg1.FieldByName('doc_result').AsString));
next;
end; //qryTTemp1
end;报错:ORA01861:文字与格式字符串不匹配。就是说我SQL语句格式错了。但是
debug 的时候 取出sqlstr串里面的sql语句:select id,mzh,name,yblb,fzkb,doc_code,doc_name,doc_dept,doc_result from inpatient_info where fzrq <'2-2月-2013' and fzrq >='2-2月-2013' 放到查询分析器里面运行 没问题求大神了~
解决方案 »
- 请问:如何实现比较两个txt文件,存在的相同和不同的内容?
- 如何控制WebBrowser滚动条
- N个组件放在一个窗口里,Align:=alLeft;怎样让这些组件按照指定的顺序排列呢?
- 如何把 DBGrid 控件的的容用SQL语句添加进一张数据库表里面,谢谢~!
- 如何读取ico的图形数据呢。如何才能获得alpen(透明值).有没有这方面资料或源码呢?小弟非常感谢。
- 关于Dbgrid的一个小问题
- 送分问题,如何动态创建控件?比如pagecontrol中的tabsheet。
- 角度计算公式
- 哪里有Delphi制作不规则窗体源码?
- 按键问题!
- cxgrid 刷新数据后原来的显示位置不变
- delph SQL查询问题,新手请教!谢谢!
再quotedstr(date_);
断点看看拼接后的这个sqlStr的值
谁能加俺QQ :150276543我断点调试 把SQL语句放到 sqlplus里面运行 好好的……
1)要么用上to_char
2)要么在连接中设置nls_date_format
举例
procedure Tfrm_server.btn2Click(Sender: TObject);
begin
con1.Close;
//con1.Params.Add('nls_date_format=''yyyymmdd''');
con1.Open;
sqlqry2.Close;
sqlqry2.SQLConnection:=con1;
sqlqry2.SQL.Text:='begin execute immediate ''alter '+
' session set nls_date_format=''''yyyymmdd''''''; end;';
sqlqry2.ExecSQL;end;procedure Tfrm_server.btn3Click(Sender: TObject);
begin
sqlqry1.Close;
sqlqry1.SQL.Clear;
sqlqry1.SQL.Add('select * from txgfx_dm_xg where sysdate>''20130101''');
sqlqry1.Open;
ds2.Active:=true;
end;结果是可以的。
举例
procedure Tfrm_server.btn2Click(Sender: TObject);
begin
con1.Close;
//con1.Params.Add('nls_date_format=''yyyymmdd''');
con1.Open;
sqlqry2.Close;
sqlqry2.SQLConnection:=con1;
sqlqry2.SQL.Text:='begin execute immediate ''alter '+
' session set nls_date_format=''''yyyymmdd''''''; end;';
sqlqry2.ExecSQL;end;procedure Tfrm_server.btn3Click(Sender: TObject);
begin
sqlqry1.Close;
sqlqry1.SQL.Clear;
sqlqry1.SQL.Add('select * from txgfx_dm_xg where sysdate>''20130101''');
sqlqry1.Open;
ds2.Active:=true;
end;结果是可以的。嗯,我后来就是把日期格式化了以后就可以了!