为什么我找不到表中的username!(20分)

  • 主题发起人 主题发起人 lunx
  • 开始时间 开始时间
L

lunx

Unregistered / Unconfirmed
GUEST, unregistred user!
请个为大侠帮我诊断一下吧?
我的头都大了(一点都不夸张,不信割下来让你下酒)
cmusername:= musername.text;
cmpassword:=mpassword.text;
table1.open;
table1.setkey;
table1.fieldbyname('username').asstring:=cmusername;
if table1.gotokey
then
begin
if (tmppassword=cmpassword)and(length(tmppassword)=length(cmpassword))
then
begin
end
else
begin
application.messagebox('密码不对!','系统登录',mb_ok+mb_iconquestion);
Cishu:=cishu+1;
if cishu>3 then
begin
end;
table1.close;
end;
end
else
begin
application.messagebox('没有这个用户!','系统登录',mb_ok+mb_iconquestion);
Cishu:=cishu+1;
if cishu>3
then
begin
modalresult:=mrall;
close;
// main1.free;
end;
table1.close;
end;
 
你后台用的什么数据库?
我不大赞成使用setkey
为何不用索引或query查找呢?
 
我用的是paradox数据库
我知道不是很好用
可我看的书都是用的这种
没办法
请教:
这种数据库在建表的时候index如何设置?
比如我想用其中的一个字段作查询
可是他提示:‘no index for fields XX'
 
用desktop打开表,选restructure
在username字段的key处双击,有'*'说明已建立索引,
程序中写tabel1.indexfieldnames='username';
if tabel1.findkey([cmusername]) then

showmessage('已找到');
或用query
query的database name为表的路径名如‘D:/',表名为aa
query.sql.add('select * from ''d:/aa'' where username=''qwer''');
where 条件可以随意写

 
为什么喜欢用SETKEY,FINGDKEY等函数呢?用个QUERY不很好吗?
 
GotoKey查询应注意以下几点:
1.确保待查询的字段是关键字或者已经在该字段上加了索引(注意是二者必须满足其
一),并且正确设置TTable组件的indexName属性。
2.调用TTable的GotoKey函数.
3。设置查找字段的值。
4. 调用TTable的GotoKey函数.
你也看到了,条件很多。
你应该用sql语句,用Tquery.不是很好嘛!
看来你是刚学数据库编程吧!
>>可我看的书都是用的这种
这年头书也真害人呀!
 
我不会呀!
我看的书都是这么说的
《DELPHI4数据库编程》 人民邮电出版社
 
cmusername:= musername.text;
cmpassword:=mpassword.text;
with query1do
begin
Close;
Sql.clear;
Sql.Text:='select * Form UserTable where UserName=:username';
ParamByName('username').AsString:=CmuserName;
open;
IF RecordCont>0 then
begin
IF FieldbyName('tmppassword'):=Cmpassword then
begin
end
else
begin
application.messagebox('密码不对!','系统登录',mb_ok+mb_iconquestion);
Cishu:=cishu+1;
if cishu>3 then
begin
end;
end;
end
else
begin
application.messagebox('没有这个用户!','系统登录',mb_ok+mb_iconquestion);
Cishu:=cishu+1;
if cishu>3
then
begin
modalresult:=mrall;
close;
end;
.....
end;
 
匆匆写的,不保证对,但相信会给你启发
 
哎,我真是孺子不可教也!
我新建了个表(用DESKTOP),设了key,可我DELPHI5中TABLE1的INDEXNAME ,
INDEXFIELDNAMES中都是空的,编译时就提示 no index for fields 'username'
在这种表中如何建索引,我把离线数据看了不知多少,就是不管用
不知是不是我的BDE设置有问题
还有DESKTOP中的
working directory
BDE /CONFIGURATION/ DRIVERS/ PARADOX/NETDIR
DATABASE/DBDEMOS/PATH
他们到底是什么关系,如果有着方面的资料请推荐给我,
总文大家我都觉得不好意思,这次的分给的特别少
以后有机会一定补上
 
设了key不等于建立了索引
在Desktop中打开你的表->点击工具栏里的左边第四个restructure ->在弹出对话矿中
右上有tableproperties 下拉框中选择secondary Indexs 设置index和indexname
然后save,table中就可看到有索引了
>>哎,我真是孺子不可教也!
那你为何不听劝呢??
给我200分也值吧!
 
可我在Inspactor里还是看不到我定义的index (index name)
index field 是干什么的?
 
你本來就應該用Query來寫登錄程序﹐用SetKey只是自找麻煩。老兄﹐進過來吧。
 
还是用TQuery吧
 
我现在在看着方面的书
谢谢各位的指点
我回努力的
 
后退
顶部