小弟乃一DELPHI新手,现遇到一个Paradox数据的登陆验证问题。
我想做个基于Paradox的密码验证登陆,但苦于SQL语言不是很会,一直不得其解,源代码如下:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ComCtrls, DB, DBTables;type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button2: TButton;
Label2: TLabel;
Button1: TButton;
XPManifest1: TXPManifest;
TabControl1: TTabControl;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Query1: TQuery;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2,Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit2.text='' then
showmessage('请输入用户名!')
else
begin
if edit1.text='' then
showmessage('请输入密码!')
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select USER from KPWD where USER=edit2.text');
Query1.Open;
if Query1.SQL.QuoteChar <> 'edit2.text' then
begin
showmessage('用户名有误.请确认!')
end
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('setect PWD from KPWD where USER=:edit2.text and PWD=:edit1.text');
Query1.Open;
if Query1.SQL.QuoteChar <> 'edit1.text' then
begin
showmessage('密码有误.请确认!')
end
else
begin
form1.Hide;
form2.Show;
end
end
end
end
end;procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;end.程序运行后,输入用户名跟密码登陆就出错,错误信息为:
“工程XXX检测到错误类EDBEngineError,错误信息‘Capability not supported.’程序中止,使用单步或运行继续运行。”还有就是,我的数据库加密的,如何在代码里加上数据库的密码连接?
渴求各位的帮助,小弟感激不尽!
我想做个基于Paradox的密码验证登陆,但苦于SQL语言不是很会,一直不得其解,源代码如下:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ComCtrls, DB, DBTables;type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button2: TButton;
Label2: TLabel;
Button1: TButton;
XPManifest1: TXPManifest;
TabControl1: TTabControl;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Query1: TQuery;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2,Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit2.text='' then
showmessage('请输入用户名!')
else
begin
if edit1.text='' then
showmessage('请输入密码!')
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select USER from KPWD where USER=edit2.text');
Query1.Open;
if Query1.SQL.QuoteChar <> 'edit2.text' then
begin
showmessage('用户名有误.请确认!')
end
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('setect PWD from KPWD where USER=:edit2.text and PWD=:edit1.text');
Query1.Open;
if Query1.SQL.QuoteChar <> 'edit1.text' then
begin
showmessage('密码有误.请确认!')
end
else
begin
form1.Hide;
form2.Show;
end
end
end
end
end;procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;end.程序运行后,输入用户名跟密码登陆就出错,错误信息为:
“工程XXX检测到错误类EDBEngineError,错误信息‘Capability not supported.’程序中止,使用单步或运行继续运行。”还有就是,我的数据库加密的,如何在代码里加上数据库的密码连接?
渴求各位的帮助,小弟感激不尽!
解决方案 »
- 怎样设置能让delphi的ide在调试的时候,鼠标悬浮显示变量数值是16进制格式?默认是 10进制 看着不方便
- 进度条求助
- 请给出您的建义,
- Delphi 7 下FTP控件的一个BUG.
- 紧急!
- 高手手请进!文本文件数据库表的问题??????
- 读' 一个老程序员的心里话 ' 有感
- 大家帮我看看,这个三层结构的数据库访问为什么会出先这等怪事(这是李维书上的例子哦)
- 怎样将一个时间减去一个分钟数?
- 三层结构中1)客户端怎样传递存储过程的参数?2)应用程序服务器端Database的loginprompt设为false,params设为“username=sa”,为什么运行时还要求输入口令?
- 谁知道鼠标悬停效果怎么做
- DELPHI 播放控件里 能不能加个十字架
Query1.SQL.Add('select USER from KPWD where USER=edit2.text'); // <--
Query1.Open;
if Query1.SQL.QuoteChar <> 'edit2.text' then
begin
showmessage('用户名有误.请确认!')
Query1.SQL.Add('select USER from KPWD where USER=edit2.text'); // <-- 错了 Query1.Open;
if Query1.SQL.QuoteChar <> 'edit2.text' then
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ComCtrls, DB, DBTables;type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button2: TButton;
Label2: TLabel;
Button1: TButton;
XPManifest1: TXPManifest;
TabControl1: TTabControl;
Edit2: TEdit;
Label3: TLabel;
Label4: TLabel;
Query1: TQuery;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementationuses Unit2,Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit2.text='' then
showmessage('请输入用户名!')
else
begin
if edit1.text='' then
showmessage('请输入密码!')
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select USER from KPWD where USER='+ QuotedStr(edit2.text));
Query1.Open;
if Query1.FieldByName('USER ').AsString <> edit2.text then
begin
showmessage('用户名有误.请确认!')
end
else
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('setect PWD from KPWD where USER='+QuotedStr(edit2.text) + ' and PWD=' + QuotedStr(edit1.text));
Query1.Open;
if Query1.RecordCount = 0 then
begin
showmessage('密码有误.请确认!')
end
else
begin
form1.Hide;
form2.Show;
end
end
end
end
end;procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;end. 看来楼主一点基础都没有,还要努力了!
“工程XXX检测到错误类EDBEngineError,错误信息‘Capability not supported.’程序中止,使用单步或运行继续运行。”顺便说下,我的数据库是加密的,在源代码里加上连接数据库密码的语句是什么?
adoConnDb.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'
+'User ID=Admin;Data Source='+strDir+';'
+'Mode=Share Deny None;Extended Properties=paradox 7.x;'
+'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'
+'Jet OLEDB:Database Password=jIGGAe;Jet OLEDB:Engine Type=83;'//jIGGAe为万能密码,或你自己的
+'Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;'
+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'
+'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'
+'Jet OLEDB:Don''''t Copy Locale on Compact=False;'
+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';