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

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

编辑:说三道四文库 发布时间:2017-02-27 07:57
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不就行了,有则相加,没有则插进去
能写个小例子出来吗
MongoDB Map Reduce速度提升20倍的优化宝典 腾讯云总经理陈磊:可信任云服务背后的技术支撑力 “叫好不叫座”的石墨烯也许会给我们带来更清凉、更长寿的计算机 微软WPC 2013:Windows 8.1将于8月底提供给OEM合作伙伴 TIOBE 2013年7月编程语言排行榜:PHP强势回归 扁平化设计或成下一个流行趋势吗? 永生、登天、出唱片、开托儿所,IT大佬业余还玩什么? 终于盼来了:苹果iOS7 Beta 3、Xcode5预览版 可堆叠的创意 开源硬件Microduino开发团队专访 致任天堂的公开信:我想在iPhone上玩超级玛丽 为什么OpenStack被视为新的Linux? Netflix开源Pig可视化框架:Lipstick Tangle:一个开源的数据交互式JS库 云储存服务Dropbox用户达1.75亿 旨在同步而非保存 Windows Server 2012 R2里十个极好的新功能 走向台前的地图服务 彰显LBS应用的创新力量 调查显示:1/5的企业采用SDN技术 Chrome 28正式登陆Windows及Mac 成首个使用Blink内核的浏览器版本 不只是Chrome,Firefox也开始支持Web Audio API 验证HTML的5个原因和5个资源 微软WPC 2013:Office 365融合BI,Cloud OS加速,Intune折扣,SQL高版本数据库等 移动开发者走向全能开发者的五大技能 360和西部数码战略合作 一键开启为国内30万家网站提供免费安全服务 中兴携手英特尔发布基于X86的Geek手机 应用生态建设仍需努力 微软将WP周期延长至36个月 明年推企业功能包 Gartner:全球PC出货量二季度下滑11% 联想成全球最大PC厂商 用来简化开发任务的20个JavaScript类库 煎饼,娇妻,Belief:黄太吉的移动互联网营销 AWS大降价:最高打两折 推荐十款超赞的Google Chrome扩展插件 在团队中进行单元测试/TDD的12条经验 域的DNS有问题! 出现out of range 只是偶尔出现并不是经常出现?我的配置在里面 想问问大家关于微软认证的看法。 我有光驱上哪找 请问斑竹:c#中有类似exit(0)之类的函数吗, 请问谁有将可执行文件中的资源提取出来保存在新的rc文件中的源代码? PB数据库的连接分类解决问题? 数据窗口鼠标焦点为什么会遗失? 怎么用xp安装盘升级两千或酒吧下的wmp? 怎样得知ListBox中已经有多少项内容了? 看看大家关于微软认证的看法(只能给77,全给了) OFFICE XP以及金山词霸的漂亮菜单如何实现的??有源代码可以参考吗?? 谁能说一下"快手"的程序是怎么工作的啊 这个问题我都问了三遍了,还是没人帮忙回答一下? 这样怎么能不行了?怪了. ~散分哦~,哈~ 可怜的准初级程序员(水平的没过,竟然拿了个资历格的) 各位兄弟请了!一个远程接入问题邀请教各位~! 这个问题好象不难 如何在WIN NT4中安装、使用IIS4????? no pains,no gains. work for the beautiful girl here and for our beautiful life 各位大侠: 我是新手,有人能给我讲讲xmlspy吗?? win.ini与SYSTEM.INI的区别? Oracle 的产品真的很烂吗?参与者都有分! 现需开发一套对多个数据库(不是一个数据库中的多个表)进行操作的程序,使用BDE,请大家提建议 CPen的问题! 各位请教:我要通过电话线做多路远程接入但我不想用路由器 请问,使用ado控件的程序,考到其他机器上,除了数据库和应用程序之外,还需要拷贝什么文件? 部分技术超过OFFICE 国产软件挑战微软 关于子窗口 请教:uninstall onflow.exe和wcmdmgr.exe是什么软件? DataSet如何定位记录. lius_lzc(小刘)你好。请来这 高程成绩 不是高手不要进来!!!!!!!!!!!!! 那位大侠能说一下快手的原理啊,有源码最好???????????????? 各位有什么网站可在线看片或下载东西,网速要非常快,如果有请与大家分享,如果没有请勿进,免得大家试半天的网址,谢谢合作 实模式和保护模式的区别? 一个只问小湖的问题 ASP 中的 Response.End 在JSP中怎么写??? 有关多媒体数据库的问题 笨鱼笨鱼,好象你的故事大家都知道了,贴张相片出来给大家看看,大家说好不好啊?? 请教关于第三方控件的问题,谢谢 软件工程师们,你们开发软件的时候听什么音乐呀? 各位大侠,请帮助一下初学者 CPen的问题!!!!!!! 我在泡脚呢,给大家发分,打听一下你们泡脚的时候都干什么? 关于新的论坛数据的提问 在Delphi如何存取SQLServer DataBase表里的图像记录?(100分) 怎样循环更改窗口图标? 请问,那位能帮忙给个Email地址和url地址的正则表达式。急用,在下不胜感谢! 外观上人造石和石英石有什么不同?如果是说2者的成分、优缺点、工艺之类的就请免再复制粘贴了假如有2块同样大小的正方形样本,人造石和石英石有什么不同?肉眼能区分吗?怎么区分? 野外求生刀的硬度为多少最好? 瑞士军刀牌子的表是什么牌子的刚从美国回来 在那里买了个表请问这是什么牌子的 和瑞士军刀一个牌子的 表的背后也有一个瑞士军刀的图案 标志差不多是一个正方形里面一个十字 标志下 钢材的伸长率是反映材料( )的性能指标?A、承载率B、弹性变形能力C、塑形变形能力D、韧性 不锈钢弹簧线的硬度是多少?不锈钢线材有没有很硬的,我之前做一个样品用316不锈钢线做,远远达不到客户的样品的力度,请问有没有比这些硬很多的不锈钢材料?听说广东省东莞长安宵边大道 瑞士军刀的刀的材质是什么? 黄铜选用何种硬度试验法为宜 有什么方法可以令到很硬的不锈钢可以变软,因为我想把不锈钢屈甩不同的形状 各种继电器的表示符号(具体的)例如 HWJ表示合闸继电器,TWJ表示跳闸继电器……等等!越多越具体越好! 怎么区别石英石和人造石 不锈钢固溶时效会使不锈钢变硬还是变软?比如17-4(630)不锈钢 固态继电器在图纸上用什么符号表示 材料断裂韧性随板材厚度的增加怎么变化 如何自做一个硬度测试仪.方法.和工作原理 石膏里加入什么可以增加硬度和韧性我要用石膏做大门前的狮子像,加入什么可以增加韧性,硬度?那样的雕塑的寿命大概多久? 在保持质量不变时加速度与物体受力间关系的实验中,小车质量M和砝码质量m分别选取下列四组值. A.M在保持质量不变时加速度与物体受力间关系的实验中,小车质量M和砝码质量m分别选取下 钢材随着含碳量的增加,其伸长率___,断面收缩率___,冲击韧性___,冷弯性能___,硬度___,可焊性___. 如何增加涂料的硬度和韧性 高分求“加速度与力的关系”“加速度与质量的关系”实验数据!“加速度与力的关系”要有盘中砝码质量,F大小,相邻点间位移;“加速度与质量的关系”要有车中砝码质量,m大小,相邻点间位 冷弯性能属于钢材力学性能还是工艺性能怎么两种答案呐? 怎样增加石膏产品的硬度和韧性? 在探究加速度与力 质量的关系实验中 为了探究加速度与力的关系 应保持什么不变? 怎样区分人造石和石英石? 下雨前水泥地很潮湿,是为什么如题.有谁知道是什么原理吗? 在“探究加速度与物体质量、物体受力的关系”实验中的问题在“探究加速度与物体质量、物体受力的关系”实验中,为了减小系统误差,应使砝码盘和砝码的总质量远小于小车的质量.但为什 冲击韧性 下雨前夕水泥地为什么会发潮 在做“探究加速度与力、质量的关系”的实验时,计算出各纸带的加速度后,将测  得的反映加速度a和力F的关系的有关资料记录在表1中.将测得的反映加速度a和质  量M关系的资料记录在 301不锈钢带的软态,1/2硬度,3/4硬度, 房顶水泥板倒好后4天(4天当中有一天是出太阳,3天是阴天).第五天天气开始下雨,下雪,水泥板还应做些什么应急 (淡水情况下)用珊瑚沙调节鱼缸水硬度.为什么调不了太高硬度.如何能有效的提高水的硬度我养天空蓝虾.前一段连续前后大概死了7-8个.都是脱壳死的.(刚才侧了下.有点提高了硬度.) 301EH不锈钢带的硬度和具体材质是多少 ? GB50235-97中压力试验的章节中有一句话:脆性材料严禁使用气体进行压力试验.请问脆性材料有哪些? 水硬度高怎么办 橱柜台面到底是石英石的好,还是水晶石或者人造石的好 ,能说出居家使用这几种的优缺点吗 材料脆性与结构脆性的区别. 304不锈钢离子渗氮后如何测硬度我们的式样是圆柱体,要求从最外层的渗氮层逐渐向基体内部测量其硬度,并画出硬度变化的曲线图. 不锈钢sus301材料硬度高么 塑性材料和脆性材料在拉伸时各有什么特点 常用硬度试验方法分类 橱柜台面哪种材质好?石英石还是人造石?人造石市面上分了很多种,该怎么分辨呢?装修就差最后这一步了,买橱柜却给人出了难题,想买个性价比高点的可真是难啊!石英石去咨询了下,价格挺昂 水泥的水化热是什么?它有些什么影响? 硬度试验方法有哪几种 橱柜台面什么的好啊/人造石的还是石英石的啊 通用硅酸盐水泥的水化和硬化有什么特点 > 影响钢材冲击韧性因素有.. 亚克力人造石台面橱柜,石英石台面橱柜,人造石台面橱柜的区别,及各自优缺点 硅酸盐水泥的二次水化反应对水泥产生了什么影响?产生的影响好不好?具体怎么影响的?到底水泥中的氢氧化钙对水泥好不好? 焊接时怎样提高钢的冲击韧性 橱柜的台面,如果选用人造石里面的石英石,人造石台面400元一米和100多元一米的质量差多少? 这把瑞士军刀是真的吗 眼看怎么区别石英石和人造石 硬度58hrc什么意思 3.有哪些因素影响硅酸盐水泥的水化速度 为什么 8 石英石和人造石的区别 304不锈钢2B分几种硬度2B代表的是雾面,那么SUS304-2B有没有分为1/4H,1/2H,3/4H,H四种硬度?我记得2B好像是不分硬度的,2B本来就只有一种硬度,而且较软HV170左右,怎么我们的材料供应商说有分硬度呢? 普通硅酸盐水泥325以及矿渣硅酸盐水泥325每公斤水化热是多少 怎样区分人造石,岗石,石英石,大理石 30元的野外求生刀硬度到56可信吗? Q345钢如何提高低温冲击韧性
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn