下面是我的代码
mainf.Free;
Application.Initialize;
Application.ShowMainForm:=false; //程序不显示主窗口
Application.Title := '管理系统';
Application.CreateForm(Tdmf, dmf);
Application.CreateForm(Tmainf, mainf);
Application.CreateForm(Tloginf, loginf);
//Application.CreateForm(Twptz_b, wptz_b);
Application.Run;
我搞不明白的是为什么从新注销后,在登录程序后,所有涉及到query的用法都不可以了
mainf.Free;
Application.Initialize;
Application.ShowMainForm:=false; //程序不显示主窗口
Application.Title := '管理系统';
Application.CreateForm(Tdmf, dmf);
Application.CreateForm(Tmainf, mainf);
Application.CreateForm(Tloginf, loginf);
//Application.CreateForm(Twptz_b, wptz_b);
Application.Run;
我搞不明白的是为什么从新注销后,在登录程序后,所有涉及到query的用法都不可以了
解决方案 »
- hook游戏了以后,DLL创建线程,编译通过,功能没有实现,求解决。
- TreeView的问题: 为什么我点击+号的时候也弹出“基本信息设置”的信息?
- 为什么ADO时不时就连不到SQL服务器
- 制作安装文件如何包含连接SQL Server2000的文件
- BDE中有UpdateSQL,可对多表进行更新操作,而ADO中却没类似的控件,怎样在ADO中对多表进行更新操作?在线等待.....
- 如何使自己定义的组件中的 AliasName属性,具备TDatabase.Aliasname属性
- 关于用来画流程图的控件?各位大侠帮忙?
- 关于RJ45通信的传输问题
- 一个菜鸟的问题,控件的
- 如何调用DBNavigator里的按钮功能
- Socket通信的字符串转换byte数组问题
- 求delphi双缓冲画图demo
mainf.Free;
Application.Initialize;
Application.ShowMainForm:=false; //程序不显示主窗口
Application.Title := '管理系统';
Application.CreateForm(Tdmf, dmf);
Application.CreateForm(Tmainf, mainf);
Application.CreateForm(Tloginf, loginf);
//Application.CreateForm(Twptz_b, wptz_b);
Application.Run;
我搞不明白的是为什么从新注销后,在登录程序后,所有涉及到query的用法都不可以了
比方说我注销后,在登录程序后要查询一个表
var
sqltxt:string;
begin
sqltxt := 'select * from jebg_table where wpsyr like ''%'+rzedit1.Text+'%''' ;
openadoquery(dmf.ADOQuery3, sqltxt);
end;
openadoquery这个过程是调用mylib.pas的
procedure openAdoQuery(ADOqry1: TADOquery; sqltxt: string);
begin
with ADOqry1 do
begin
close;
SQL.clear;
SQL.add(sqltxt);
open;
end;
end;
居然没有查询到内容,感觉ADoquery好用没有调用似的,一点反应也没有
首先看看数据库连接是否正常
if adoquery1.state = dsinactive then
begin
showmessage('数据库未连接');
exit;
end;如果正常,看看有没有数据
showmessage(inttostr(dmf.ADOQuery3.recordcount));
可是dbgrid确没有显示结果
var
sqltxt:string;
begin
sqltxt := 'select * from jebg_table order by id' ;
openadoquery(dmf.ADOQuery3, sqltxt);
dbgrid1.DataSource:=dmf.DataSource2;//就是这句话,如果没有则不显示内容
dbgrid1.Columns.Items[0].FieldName:='wpsyr';
dbgrid1.Columns.Items[0].Width:=100;
dbgrid1.Columns.Items[1].FieldName:='sfzh';
dbgrid1.Columns.Items[1].Width:=64;
dbgrid1.Columns.Items[2].FieldName:='kykje';
dbgrid1.Columns.Items[2].Width:=64;
dbedit1.DataField:='wpsyr';
dbedit2.DataField:='sfzh';
dbedit3.DataField:='kykje';
end;
我发现了一个问题,这个表在窗体创建的时候dbedit6.DataSource我必须在代码里写上dbedit6.DataSource:=dmf.DataSource1;dbgrid1才能显示数据,可是我已经在opject inspector里已经设置好数据源了dmf.DataSource1,不是很理解为什么
是不是你还是设置的不对啊,怎么一会dbgrid1.DataSource:=dmf.DataSource2,一会又在opject inspector里已经设置好数据源了dmf.DataSource1
到底是DataSource2还是1Datasource2的DataSet设置为ADOQuery3
DbGrid1的Datasource设置为dmf.DataSource2
procedure Tsakxf.FormCreate(Sender: TObject);
var
sqltxt:string;
begin
dbgrid1.Columns.Items[0].FieldName:='wpsyr';
dbgrid1.Columns.Items[0].Width:=100;
dbgrid1.Columns.Items[1].FieldName:='sfzh';
dbgrid1.Columns.Items[1].Width:=64;
dbgrid1.Columns.Items[2].FieldName:='kykje';
dbgrid1.Columns.Items[2].Width:=64; sqltxt := 'select * from jebg_table order by id' ;
openadoquery(dmf.ADOQuery3, sqltxt);
end;