1. SELECT 用户,密码, (CASE WHEN 权限 ='1' THEN '管理员' WHEN id = '2 'THEN '录入员' END) 权限 FROM table2. procedure Tform1.dbgrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var str:string; begin if column.FieldName='权限' then begin str:=trim(CdsMain.fieldbyname('权限').AsString); if str='1' then canvas.TextOut(Rect.Left+1,Rect.Top+2,'管理员'); else if rstr='2' then canvas.TextOut(Rect.Left+1,Rect.Top+2,'录入员') end; end;
suny_2001(小鱼儿) 您说得我试了方法好像不行呀! 方法1在Access下好像不行
有字典表 wks(mex)你会可以教我一下吗?
你可以这样,把一个登陆用户名的窗体改成用一个combobox吧 然后在登陆时可以这样编写 procedure Tlogin.FormCreate(Sender: TObject); var id:ansistring; begin adoquery1.sql.add('select * from login'); while not sql_login.Eof do begin id:=adoquery1.fielbyname(''); if id=1 then combobox.Items.Add('管理员'); else combobox.items.add('录入员'); adoquery1.next; end; combobox.ItemIndex:=0; end;
我上面只是举个例子 我用的表比较复杂必须用DBGrid显示 我用的SQL语句如下 SELECT A.日期,A,B.名称,A.代码,A.单位 FROM 表1 A,表2 B WHERE A.代码=B.代码 但是这种方法在DBGrid中修改数据会出现一个错误 “缺少更新或刷新的键列信息” 哪位大虾可以帮我解决这个问题,或者有什么别的方法!分不够可以再给!!!
SELECT 用户,密码, (CASE WHEN 权限 ='1' THEN '管理员' WHEN id = '2 'THEN '录入员' END) 权限 FROM table2.
procedure Tform1.dbgrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var str:string;
begin
if column.FieldName='权限' then
begin
str:=trim(CdsMain.fieldbyname('权限').AsString);
if str='1' then
canvas.TextOut(Rect.Left+1,Rect.Top+2,'管理员');
else if rstr='2' then
canvas.TextOut(Rect.Left+1,Rect.Top+2,'录入员')
end;
end;
您说得我试了方法好像不行呀!
方法1在Access下好像不行
wks(mex)你会可以教我一下吗?
然后在登陆时可以这样编写
procedure Tlogin.FormCreate(Sender: TObject);
var
id:ansistring;
begin
adoquery1.sql.add('select * from login');
while not sql_login.Eof do
begin
id:=adoquery1.fielbyname('');
if id=1 then
combobox.Items.Add('管理员');
else
combobox.items.add('录入员');
adoquery1.next;
end;
combobox.ItemIndex:=0;
end;
我用的表比较复杂必须用DBGrid显示
我用的SQL语句如下
SELECT A.日期,A,B.名称,A.代码,A.单位 FROM 表1 A,表2 B
WHERE A.代码=B.代码
但是这种方法在DBGrid中修改数据会出现一个错误
“缺少更新或刷新的键列信息”
哪位大虾可以帮我解决这个问题,或者有什么别的方法!分不够可以再给!!!
code name
1 管理员
2 录入员然后,在delphi中放两个记录集,一个连主表,一个连字典表在字典表记录集上打右键,字段编辑,然后装入所有字段。
在主表记录集上打右键,字段编辑,打右键,装入所有字段,然后再新键字段,这个字段是一个虚拟字段,为了把主表记录集的字段和字典表记录集的字段连起来,name:随便,type:string,field type:lookup,key field:打算翻译的字段,dataset:字典表记录集,lookupkey:code,result field:name
好了,可以了,
你可以研究研究,很好用的,不用写一句代码