怎样将二进制文件转化数据表存入SQL Server中 (50分)

  • 主题发起人 主题发起人 流涌
  • 开始时间 开始时间

流涌

Unregistered / Unconfirmed
GUEST, unregistred user!
有这样二进制文件sys.ini用它来存储用户信息,sys.ini文件结构为:
用户名(12字节) 密码(12字节) 保留或权限(24字节)
用户1 密码1
用户2 密码2
... ...
现在怎样利用delphi的数据库功能将其转化为数据表的格式存入到SQL Server中,多个客户机都必须通过这张表对要登录的用户的身份进行验证后才可进入。
to tyzhang
我们继续讨论吧!
 
如果你的系统构架是C/S系统的话,其流程如下:
程序启动--〉连接数据库--〉显示登陆框,等待用户输入--〉用户输入并确定
--〉用输入的用户名到用户表中进行查询--〉如果查不到则报无此用户,如查到--〉
对取回的纪录的密码字段进行解码,并与输入的密码进行比较--〉如不同则报密码错,
如相同--〉到权限表查询此用户的权限--〉用权限对程序界面进行修改--〉等待用户
的使用调度。。。。。
 
to tyzhang
我不希望SQL Sever端的用户信息表被任何人看到,即使未经授权的用户看到了用户信息
文件也是乱码,那麽Servr端的用户信息是以什麽形式存放的呢?
 
第一、如果你不想让别人看到你的SQL Sever端的用户信息表中的内容,那么你可以在
SQLServer的数据库管理上做文章,比如设立用户,除此用用户外别的用户不能对这个表进
行查询/修改/删除等操作。

第二、如果在数据库管理上无法完成,可以对数据库表中的内容进行加密。比如加密
密码,加密权限标记等。
 
欧!我明白了,server端的用户信息表是以一个假象存放的,只有经授权的client才可以
看到经过解密后的真实用户信息。这一部分我大致明白了,谢谢你!
那麽,如果我想对用户的操作进行记录,我应怎麽办?
 
如果你要记录用户的操作行为,可建立一个日志表,当用户对重要的数据进行修改/删除
/添加时,表改变前的数据与改变后的数据全部记录下来(关键字+修改的内容)。可以用触
发器(无法确定是谁干的),或者在客户端做插入记录,当对重要数据进行操作时,就记录
下谁在什么时间,什么地点(程序的那个界面上),进行什么动作,动作前的数据,动作后
的数据等信息记录下来。
 
具体如何实现呢?
能否给我推荐一些这方面的资料,谢谢!
 
比如:
1、建表:Log
ID Int Indentify(1,1), //自增号,避免重复
Emp char(8), //操作者
Date DateTime, //操作时间
Act char(8), //做什么事
Addr char(10), //界面名称
Lab char(8), //操作的表
KeyID Int, //关键字号
Row char(8), //操作的列
OldData char(10), //旧值
NewData char(10) //新值
2、比如小王需要领取练习本(在Master表中,练习本的关键字号为122号)(原数量为
10个)3本。则插入记录如下:
Query.Close;
Query.SQL.Clear;
Query.SQL.Append('Insert Log(Emp,Date, Act,Addr,lab,KeyID,Row,OldData,NewData)
Values(:Emp,GetDate(),:Act,:Addr,:Lab,:KeyID,:Row,:OldData,:NewData)');
Query.ParamByName('Emp').Value:='小王';
Query.ParamByName('Act').Value:='领练习本';
Query.ParamByName('Addr').Value:='领取界面';
Query.ParamByName('Lab').Value:='Master';
Query.ParamByName('KeyID').Value:=122;
Query.ParamByName('Row').Value:='Qty';
Query.ParamByName('OldData').Value:='10';
Query.ParamByName('NewData').Value:='7';
Query.ExecSQL;
这样就可以插入了一条领取3个练习本的日志。
3、如果是批量修改,可以进行数据联合查询,将结果集保存到日志表中。
 
to tyzhang
和你讨论受益非浅,非常感谢你这麽细致的回答,从你的解答中我明白了许多,我现在知道
该如何去做了,遇到问题我还会来问你,谢谢!我的邮箱lyaip@etang.com。
 
接受答案了.
 

Similar threads

回复
0
查看
873
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部