说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

delphi 需求如下:查询各个表中的数据列的数据类型,除int外,所有数据都要通过加密代码加密,代码写到如何读取类型所对应的列值时

编辑:说三道四文库 发布时间:2017-12-18 07:43
HTML文档下载 WORD文档下载 PDF文档下载
delphi 数据库 select //数据库数据加密 Schema 数据库名称,Name:要查询的表的名称
procedure TOperationDM.DataOperations(Schema:String;Name:String);
var
  i,j,k:Integer;
  strSql,allSql:String;
  counts:Integer;
  list :TStringList;
  strType:Sting;

begin
  list :=TStringList.Create;
  OperationADOCon.Close;
  OperationADOCon.ConnectionString:= TOper.readParamdb;
  OperationADOCon.Open;
  try
     with ADOQuery1 do
     begin
        strSql := 'SELECT DATA_TYPE FROM information_schema.`COLUMNS`'
                +'WHERE TABLE_SCHEMA LIKE "'+Schema+'" '
                +'AND TABLE_NAME LIKE "'+Name+'"';

        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        sql.Add(strSql);
        ADOQuery1.Open;
        counts := ADOQuery1.RecordCount;
        if(counts >0) then
        begin
          for i:=0 to counts-1 do
          begin
           list.Add(ADOQuery1.fieldbyName('DATA_TYPE').AsString);
          end;
          for j:=0 to list.Count-1 do
          begin
             strType := list[j];
             if (Trim(strType) <> 'int') then   //判定,除了int类型的数据以外其他类型的数据全部加密
             begin
                 //将数据类型所对应的数据进行加密操作(问题是这个对应的值如何获得呢,请高手赐教,本人刚接触delphi还有很多东西高步清楚的)
               
             end;
          end;
        end;
     end;
  finally
   OperationADOCon.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.Close;
  end;
end;
泪奔了,请高手指教
既然用ADO,那就
直接用TADOQuery去
SELECT 表名的全部字段
用TField取类型和值即可。
如 Fields[0].DataType 和 Fields[0].AsString (或 As 其它类型)
你会发现ADO.Connection提供很多与Schema有关的信息。
谢谢,我试试,能不能解决
下面的那部分调用加密的程序基本完成,可是到那个得到数据类型,列名,那部分查询出来10条数据,可是当我取值的时候,程序会把第一条重复10次保存到list中,什么原因,我之前都是这么写的,
for i:=0 to counts-1 do
          begin
           list.Add(ADOQuery1.fieldbyName('DATA_TYPE').AsString+‘=’+ADOQuery1.fieldByName('column_name').AsString);
end;

这里的counts就是我ADOQuery1.RecordCount值
加密后存储,加密方法很多用密钥自定义规则,或者用MD5等等已经有成熟案例的加密方法,至于显示时要不要加密看需求,只加密关键字段,犯不着什么东西都加密,累不累,有没有必要?
重复10次保存到list?没看到你有Next,移动指针了吗?
写了next就可以了,我也是刚学习的,还多东西一时间注意不到
高手,问你一个问题,例如我现在有个list,list中的数据是 ‘001’,‘003’,‘001’,‘005’我要怎么给这个list进行分组
要么查询出数据后放到list再去写分组的算法,要么在数据查询的时候在SQL里做分组(这种方法更方便快捷),再插入list
恩不能写个案例出来,刚刚弄这个delphi,好多地方有点转不过弯来
用 TStringList,它有个参数是 Objects,那你就可以把分组后的内容放在第二层。

比如你有这样的数据:

'001', '000012'
'002', '000063'
'001', '000015'

你想用第一个Field去分组,也就是

'001' 下有一个List内容为 '000012' 和 '000015'
'002' 下有一个List内容为 '000063'

那就这么写:

1.找到001,取出它内部的List,插入'000012'
2.没找到001,新增一个List,插入'000012'和'001'一起插入到分组List

比如分组List叫 GList: TStringList; 
内容List叫 List: TStringList;

则上面代码就是

Str1:='001';
Str2:='000012';
......
Index:=GList.IndexOf(Str1);
if Index>=0 then //找到了
  TStringList(GList.Objects[Index]).Add(Str2)
else //没找到
begin
  List:=TStringList.create;
  List.Add(Str2);
  GList.AddObject(Str1, List);
end;

不知道这样子是不是你所谓分组的意思?
如果不是,拜托你把分组的意思讲明白。
我现在这个东西已经解决,谢谢!
还有个问题,就是list中的数据为list{'001=2','002=3','001=4','003=6'}
等号前面是编号,等号后面是得分,delphi 中TStringList是可以这么写的
我想得到一个新的list的list{'001=6','002=3','003=6'},意思就是如果编号一样的则将得分相加,不相等的直接将这一项存在新的list中
高手们,你们都什么时候出没的,神龙见首不见尾的
没有必要搞list的list,每次做动作之前循环判断一下你的list不就行了,有则相加,没有则插进去
能写个小例子出来吗
第10章 SQL基础-Delphi资料 SQL语句中的删除和改变-Delphi资料 TDataLink类别的说明-Delphi资料 TDBGrid控件中对多个记录的处理-Delphi资料 安装BDE需要的东东-Delphi资料 保存DBGrid中栏的字段名及尺寸-Delphi资料 动态生成定义数据库-Delphi资料 动态组成SQL速句-Delphi资料 多层C/S的客户端调用服务器端的方法-Delphi资料 关于dephi数据库的动态建立-Delphi资料 基 于WEB 的 数 据 库 查 询-Delphi资料 计算数据库某字段的值-Delphi资料 计算字段值-Delphi资料 建立应用软件注册安全机制-Delphi资料 建立自己的数据字典库-Delphi资料 将BLOB字段的BMP图显示出来-Delphi资料 将图像放入数据库中-Delphi资料 解 决sybase 用 户 数 据 库 不 能 进 入 故 障 的 一 种 方 法-Delphi资 解决sybase用户数据库不能进入故障的一种方法-Delphi资料 解决一个DBF表时的&quot;Index not found..&quot;错误-Delphi资料 精简Delphi数据库应用系统 精简Delphi数据库应用系统-定制BDE驱动程序 精简数据库应用系统-Delphi资料 开 发 基 于ORACLE7 数 据 库 的 管 理 信 息 系 统-Delphi资料 开 发AS/400 应 用 系 统: PB5 与Delphi3 的 比 较 利 用Delphi 开 发 响 应 用 户 输 入 的 数 据 库 查 询Web Server 程 利用Delphi开发响应用户输入的数据库查询Web Server程序 利用Tbatch组件完成数据批处理-Delphi资料 如 何 恢 复Sybase SQL Anywhere 的 数 据 库-Delphi资料 如何捕捉KEY VIOLATION等错误-Delphi资料 如何得到SQL返回的计算结果-Delphi资料 大家来看看[CSDN总版主的立法和执法],就会知道为什么水园的执法者如此猖狂了 请用这则给下面这个替换字符 局域网2000系统如何设置计算机描述(50分)? 强答题:请听好题"请问如何在可编辑的列表框中显示你想输入的字符串,而且可以输入多行?",开始! 下面两个操作,哪种效率高一些?或者还有什么更好的方法,谢谢! 简单问题,马上结账 ^在Delphi中是什么操作符? 各们兄台,小弟有急事相求,在线等~~~~~~~~~~~~~~~~~ 关于新闻发布时内容显示的问题 请教Tab Control的使用 microsoft jdbc for sqlserver2000 result 如何将指针移到首位!!在线等急!!! 谁有CVS下载?我去官方网站的下载,根本没有安装文件。 JSP中新建文件夹的问题 关于地图的问题,谁能解决啊? 怎样获取点击或按下winform上 [×]按钮时的事件 在服务器端执行一个 在客户端弹出对话框的程序? 如何不让局域网上的其他机用二级代理上网. oracle 表空间问题 哪位老大知道DBF的格式。 新手想请问关于刚学图象处理先学哪些?即先从哪入手? 请问关于函数挂接的问题 学习中的、已经学好的、准备学习java的朋友来看看 如何在一个线程里创建一个窗体? 难题,,,,(马上结) 怎样使windows service能接受其他程序的调用? ADO+ACCESS问题 十万火急!怎样在ASP.net(C#)中调用OCX对象 如何填充一个封闭的区域 吉林延边发生多起朝鲜警备队员越境抢劫杀人案件 perl有比较好的ide吗????? FilenameFilter用声明吗?? 怎样将两张表中相关数据绑定到DropDownList 请问java 中如何实现大小写不敏感的字符串替换???谢谢 超级头痛:如何找到DataList里的RadioButton? 权限设定时奇怪问题? 200分相送,如何写一个divx的编码过滤器 求一 SQL 语句的写法 高手来看!!!!如何在BCB程序中打开Oracle数据库 在串口通信中怎样解除waitcommevent()的等待 快三十岁了,适合再当程序员么? 小弟急着连数据库,搞不明白怎样连,拜托 怎么得到一个进程的句柄 ADO+ACCESS问题 谁能告诉我windows server 2003的显卡驱动到哪里下载 用DataOutPutStram的writeUTF写文件时开头总出现两个字符的乱码? 关于IMAIL6.0外发邮件问题 是个关于表单的问题? 小问题,在线等 谁能告诉我windows server 2003的显卡驱动到哪里下载 global文件竟然没有,为何???---waiting!!! Direct3D中关于渲染(render)的问题? 各位高手,win2000和xp共享的问题 人琴俱亡 如何运用细节描写刻画人物? 物理题求解,为什么选CD悬挂在电梯天花板上的弹簧测力计的钩子挂着质量为m的物体,电梯静止时弹簧测力计的示数为G=mg,下列说法中正确的是 [ ] A.当电梯匀速上升时,弹簧测力计的示 浅析如何完善后勤保障社会化体系建设 军加辶是什么字 平面α‖平面β,△ABC,△A1B1C1分别在α、β内,线段AA1、BB1、CC1交于点O,O在α、β之间,若AB=2AC=2,∠BAC=60°,OA:OA1=3:2.求△A1B1C1的面积. 重加辶是什么字 辶加小是什么字 灵、魄、魂有什么区别吗? 今年是918事变多少周年! 一个辶字加个占念什么啊 辶 里面一个‘日 ’ 辶 里面一个‘月’ 是个词 怎么念 聚焦去美国化:是否为世界多极化发展必联合国-阿盟叙特使称伊朗应参加叙问题“绿色和平”成员登埃菲尔铁塔 悬空表俄外长与联合国叙问题特使讨论筹备叙问解密以色列版007:最爱暗杀 钟爱炸胡万林拒为堂妹看病:这病我治不好 去解密以色列版007:最爱暗杀 钟爱炸中华典籍朗诵比赛在蒙古国举行俄外长与联合国叙问题特使讨论筹备叙问联合国-阿盟叙特使称伊朗应参加叙问题访塞浦路斯能源、工商及旅游部长世外桃源无人岛救灾面包发霉不能止于道歉受设备故障影响 京沪高铁22日多趟列[探访南水北调] 湍河渡槽:世界最大大奖与免费旅游等你来北京写字楼租金一年来首涨京沪高铁因设备故障大面积晚点开学告别玩泥巴花40元可“刷”1万个下载量阿里联手7家银行推无抵押信用贷小米推智能手环意在建“生态”海之皇夺明二鬼子汉奸李富贵七极冥王泰坦传奇异人傲世录武震乾坤颠覆笑傲江湖拓天狂神贼控天下苍冥之青渊槟榔谷旅游天涯海角旅游龙塔旅游圣索菲亚教堂旅游中央大街旅游防洪纪念塔旅游俄罗斯风情小镇旅游太阳岛旅游麦积山石窟旅游李广墓旅游胡氏民居旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘