我写了一个图书管理系统
可是只能再自己得机子上运行
请问是怎么啦
大家帮帮我啊
我刚学数据库编程,好多都不懂
function TMainF.CheckUser(AUserName , AUserPwd : string):integer;
var
Query : TQuery;
begin
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select * from tsyhb where UserName=:UserName');
Query.ParamByName('UserName').AsString := AUserName;
Query.Open;
if Query.RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else begin
if Query.FieldByName('UserPwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query.FieldByName('Class').AsInteger;
end;
Query.Close;
Query.Free;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;
每回我登录的时候总是告诉我 连接数据库出错
可是在装了delphi的机子上就能用,什么问题都没有啊!!
高手们帮帮我阿 !!!
可是只能再自己得机子上运行
请问是怎么啦
大家帮帮我啊
我刚学数据库编程,好多都不懂
function TMainF.CheckUser(AUserName , AUserPwd : string):integer;
var
Query : TQuery;
begin
try
Query := TQuery.Create(nil);
Query.DatabaseName := DBName;
Query.SQL.Add('select * from tsyhb where UserName=:UserName');
Query.ParamByName('UserName').AsString := AUserName;
Query.Open;
if Query.RecordCount = 0 then
begin
MessageDlg('用户名错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else begin
if Query.FieldByName('UserPwd').AsString <> AUserPwd then
begin
MessageDlg('用户名或口令错误',mtError,[mbok],0);
Result := -1;
Exit;
end
else Result := Query.FieldByName('Class').AsInteger;
end;
Query.Close;
Query.Free;
except
Result := -1;
MessageDlg('连接数据库出错',mtError,[mbok],0);
end;
end;
每回我登录的时候总是告诉我 连接数据库出错
可是在装了delphi的机子上就能用,什么问题都没有啊!!
高手们帮帮我阿 !!!
http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=zh-cn
如果用的BDE配置就麻烦一些。用Wise 可以自动配置。
老问题了
初学的就用ADO吧
不用想那么多
在每个连接数据库的控件中
Query.DatabaseName := 数据模块.database.databasename即可。
一次连接成功一直使用减少连接的时间。
另外如果你使用的是delphi自带的PARADOX数据库,你可以直接这样写
Query.DatabaseName := 数据表的存放路径+表名
、这是我的想法啊
bde快淘汰了
classes, comctrls, registry,Sysutils,windows,Printers,Dialogs;Const UserIDLength = 10;
CodeLength = 10;
GroupIDLength = 2;
var
DBName : string='';
BackName : string='';
ViewOper : boolean = True;
ViewBookMgr : boolean = True;
ViewSettingMgr : boolean = True;
ViewAbout : boolean = True;
ViewBack : boolean = True;
OutDay : integer= 60;
FineDay : Extended = 0.1;
PrintLinesCount : integer= 50;procedure ReadFromReg;
procedure WriteReg;
procedure GetStr(var Str: TStringList;ListView : TListView;
Title : string;LinesCount : integer);
procedure PrintListView(ListView : TListView;Title:string);
procedure SaveListView(ListView : TListView;Title,PathAndName:string);implementation
procedure ReadFromReg;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKey_CURRENT_USER;
if not Reg.KeyExists('SoftWare\图书管理系统') then
begin
Reg.OpenKey('SoftWare\图书管理系统',True);
Reg.WriteBool('ViewOper',True);
Reg.WriteBool('ViewBookMgr',True);
Reg.WriteBool('ViewSetting',True);
Reg.WriteBool('ViewAbout',True);
Reg.WriteBool('ViewBack',True);
Reg.WriteString('DataPath','"'+GetCurrentDir+'\Data'+'"');
Reg.WriteInteger('OutDay',OutDay);
Reg.WriteFloat('FineDay',FineDay);
Reg.WriteInteger('PrintLinesCount',PrintLinesCount);
DBName := GetCurrentDir+'\Data';
Reg.WriteString('BackGroundName','""');
end
else begin
Reg.OpenKey('SoftWare\图书管理系统',False);
try
ViewOper := Reg.ReadBool('ViewOper');
except
Reg.WriteBool('ViewOper',True);
end; try
ViewBookMgr := Reg.ReadBool('ViewBookMgr');
except
Reg.WriteBool('ViewBookMgr',True);
end; try
ViewSettingMgr := Reg.ReadBool('ViewSetting');
except
Reg.WriteBool('ViewSetting',True);
end; try
ViewAbout := Reg.ReadBool('ViewAbout');
except
Reg.WriteBool('ViewAbout',True);
end; try
ViewBack := Reg.ReadBool('ViewBack');
except
Reg.WriteBool('ViewBack',True);
end; try
DBName := Reg.ReadString('DataPath');
except
Reg.WriteString('DataPath',GetCurrentDir+'\Data');
DBName := GetCurrentDir+'\Data';
end; try
BackName := Reg.ReadString('BackGroundName');
except
Reg.WriteString('BackGroundName','');
BackName := '';
end; try
OutDay := Reg.ReadInteger('OutDay');
except
Reg.WriteInteger('OutDay',OutDay);
end; try
FineDay := Reg.ReadFloat('FineDay');
except
Reg.WriteFloat('FineDay',FineDay);
end; try
PrintLinesCount := Reg.ReadInteger('PrintLinesCount');
if PrintLinesCount<5 then
PrintLinesCount := 5;
except
Reg.WriteInteger('PrintLinesCount',PrintLinesCount);
end;
end;
Reg.Free;
end;procedure WriteReg;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKey_CURRENT_USER;
Reg.OpenKey('SoftWare\图书管理系统',True);
Reg.WriteBool('ViewOper',ViewOper);
Reg.WriteBool('ViewBookMgr',ViewBookMgr);
Reg.WriteBool('ViewSetting',ViewSettingMgr);
Reg.WriteBool('ViewAbout',ViewAbout);
Reg.WriteBool('ViewBack',ViewBack);
Reg.WriteString('DataPath',DBName);
Reg.WriteString('BackGroundName',BackName);
Reg.WriteInteger('OutDay',OutDay);
Reg.WriteFloat('FineDay',FineDay);
if PrintLinesCount<5 then
PrintLinesCount := 5;
Reg.WriteInteger('PrintLinesCount',PrintLinesCount);
Reg.Free;
end;procedure GetStr(var Str: TStringList;ListView : TListView;
Title : string;LinesCount : integer);
var
i : integer;
j : integer;
Lines : integer;
PageCount : integer;
begin
PageCount := 1;
Lines := 0;
for i := 0 to ListView.Items.Count-1 do
begin
if Lines= 0 then
begin
Str.Add(Title+' 打印时间: '+DateToStr(Date));
Inc(Lines);
Str.Add('');
Inc(Lines);
end;
Str.Add(ListView.Columns[0].Caption+' : '+ ListView.Items[i].Caption);
Inc(Lines);
if Lines>LinesCount then
begin
Lines := 0;
Str.Add(#12);
end; for j := 0 to ListView.Columns.Count-2 do
begin
if Lines= 0 then
Str.Add(Title);
Str.Add(ListView.Columns[j+1].Caption+' : '+ ListView.Items[i].SubItems.Strings[j]);
Inc(Lines);
if Lines>LinesCount-2 then
begin
Lines := 0;
Str.Add('');
Str.Add(' --第 '+IntToStr(PageCount)+' 页--');
Str.Add(#12);
end;
if Lines= 0 then
begin
Str.Add(Title+' 打印时间: '+DateToStr(Date));
Inc(Lines);
Str.Add('');
Inc(Lines);
end;
end;
Str.Add('...............................');
if Lines>LinesCount-2 then
begin
Lines := 0;
Str.Add('');
Str.Add(' 第 '+IntToStr(PageCount)+' 页');
Str.Add(#12);
end;
end;
end;procedure PrintListView(ListView : TListView;Title:string);
var
S : TStringList;
f : TextFile;
i : integer;
begin
S := TStringList.Create;
GetStr(S,ListView,Title,PrintLinesCount);
AssignPrn(f);
try
Rewrite(f);
for i := 0 to S.Count-1 do
Writeln(f,S[i]);
CloseFile(f);
except
MessageDlg('打印失败',mtError,[mbok],0);
CloseFile(f);
end;
S.Free;
end;procedure SaveListView(ListView : TListView;Title,PathAndName:string);
var
S : TStringList;
begin
S := TStringList.Create;
GetStr(S,ListView,Title,PrintLinesCount);
S.SaveToFile(PathAndName);
S.Free;
end;end.是不是只要把我的数据改成ADO就行了啊
要先在BDE下建个别名先!
装上
然后配置bde
如果是MS SQL-7.0以上,建议用ADO