ASP.NET Forums
首页 搜索 用户列表 FAQ 注册 登录  
ASP.NET Forums » 软件开发 » DELPHI » [Delphi]中山企业数据库区位加密解密
  [Delphi]中山企业数据库区位加密解密
帖子发起人: wellknow   发起时间: 2004-6-21 4:43 PM   回复数: 2
« 上一主题 下一主题 »
楼主
  2004-6-21, 4:43 PM
wellknow 离线,最后访问时间: 2/5/2006 8:29:06 PM wellknow



发帖数前10位

师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,025
精华: 1
发贴: 721
[Delphi]中山企业数据库区位加密解密
 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    T: TADOQuery;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    function Q2S(sStr: widestring): String;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
//
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  sStr, s1, s2: widestring;
  I: Integer;
begin
  //ADOQuery1.UpdateBatch;
  with ADOQuery1 do
  begin
    Close;
    Open;
      First;
      while NOT EOF do
      begin
        for I := 0 to RecordCount - 1 do
        begin
          sStr := TRIM(Fields[2].AsString);
          s1 := TRIM(Fields[3].AsString);
          s2 := TRIM(Fields[7].AsString);
          //ShowMessage(Q2S(sStr) + ' <-> ' + sStr);
          Edit;
          Fields[2].Value := Q2S(sStr);
          Fields[3].Value := Q2S(s1);
          Fields[7].Value := Q2S(s2);
          Next;
        end;//for I
      end;//while
      UpdateBatch;
  end;//with
end;

function TForm1.Q2S(sStr: widestring): String;
var
  i : integer;
  s: String;
  w1, w2: integer;
  a: integer;
begin
  Result := '';
  for i := 1 to length(sStr) do
  begin
    s := sStrIdea;
    w1 := ord(s[1]);
    w2 := ord(s[2]);

    // Enhanced by Gear1023
    // DateTimed: 20040605
    if ByteType(s, 1) = mbsingleByte then
    begin
      a := w1 xor $77;
      Result := Result + chr(a);
    end
    else
    begin
      a := w2 xor $77;
      Result := Result + chr(w1)+chr(a);
    end;
  end;
end;

end.


IP 地址: 已登录   来自: 已登录    返回顶部
第 2 楼
  2004-6-21, 5:49 PM
wellknow 离线,最后访问时间: 2/5/2006 8:29:06 PM wellknow



发帖数前10位

师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,025
精华: 1
发贴: 721
Re: [Delphi]中山企业数据库区位加密解密
 

新的企业数据表结构:

ID int  --顺序号
Name varchar 50 --企业名称
ParentID int --所属行业
OrderID int  --排列顺序
isDisabled bit --禁用
Memo text  --备注说明
DateTimed datetime--更新日期
pID int  --所属区域
Summary varchar 255 --公司简介
Keyword varchar 50 --关键词
EspecicalID int --
Hits int  --总点击数
UserID int  --后台登录用户ID
UserIP varchar 50 --后台登录用户IP
MemberID int --会员登录时的ID
MemberIP varchar --会员登录时的IP
isChecked bit --审核标识
CheckedID int --审核登录时的ID
CheckedIP varchar --审核登录时的IP
CheckedDateTimed datetime --审核时刻
isHeadline bit --头条新闻
isHightLight bit --高亮显示
isTop bit  --分类置顶
isTopAll bit --总固顶
Source text  --经营范围
URLSource varchar 255 --网站地址
URLPic varchar 50  --公司LOGO地址
Contactor varchar 255 --法人代表
Contactor1 varchar 50 --第一联系人
Contactor2 varchar 50 --第二联系人
Tel varchar 255 --公司电话
Tel1 varchar 50 --第一联系电话
Tel2 varchar 50 --第二联系电话
Fax varchar 255 --公司传真
Fax1 varchar 50 --第一联系传真
Fax2 varchar 50 --第二联系传真
Mobile varchar 255 --移动电话
Mobile1 varchar 50 --第一手机号码
Mobile2 varchar 50 --第二手机号码
ZIP varchar 50 --邮政编码
Address varchar 500 --公司地址
Address1 varchar 50  --第一联系地址
Address2 varchar 50  --第二联系地址
EMail varchar 255   --邮件地址
EMail1 varchar 255   --第一邮件地址
EMail2 varchar 255   --第二邮件地址
MSN varchar 255 1
YAHOO varchar 255 1
AOL varchar 255 1
ICQ varchar 50 1
QQ varchar 50 1
Bank varchar 255   --开户银行
BankAccount varchar 50  --开户账户
BankID varchar 50   --存折号码
BankCardID varchar 50  --卡的号码
TaxID varchar 50   --税务登记号
IndustryCommerceID varchar 50 --工商登录号


IP 地址: 已登录   来自: 已登录    返回顶部
第 3 楼
  2004-6-21, 5:57 PM
wellknow 离线,最后访问时间: 2/5/2006 8:29:06 PM wellknow



发帖数前10位

师长
等级: 师长
注册: 2004年6月1日
区域: 中国广东省中山市
积分: 1,025
精华: 1
发贴: 721
Re: [Delphi]中山企业数据库区位加密解密
 

/*
名称Tongue TiedpAll_Converts_Categories_Company
输入:
输出:
调用:
说明:转换原工商企业数据库到新的数据格式

作者Big Smileili J.F. Senders
邮件Big Smileili@wellknow.net
网站:http://www.wellknow.net
更新:20040621
*/
ALTER PROCEDURE spAll_Converts_Categories_Company
AS

 SET NOCOUNT ON

 DECLARE
  @NAME nvarchar(50),  --企业名称
  @ZIP nvarchar(255),  --邮政编码
  @ADDRESS nvarchar(255), --详细地址
  @TEL nvarchar(255),  --电话号码
  @FAX nvarchar(255),  --传真号码
  @HOMEPAGE nvarchar(255), --公司网站
  @EMAIL nvarchar(255),  --电子邮件
  @MAIN nvarchar(1000),  --经营范围
  @AREA nvarchar(255),  --所在镇区
  @ENO nvarchar(50),
  @CODE nvarchar(50),
  @KIND nvarchar(50),  --行业小类
  @CATEGORY nvarchar(50), --行业中类
  @BCATEGORY nvarchar(50), --行业大类
  @ADV nvarchar(50),  
  @MARK nvarchar(50),
  @LOGO nvarchar(50)

 DECLARE
  @AreaID INT,    --所属地区
  @CategoriesID INT   --所属行业
  
 DECLARE Converts CURSOR FOR
  SELECT * FROM xiao***
   WHERE ([NAME] <> '')
   ORDER BY [Name]
 OPEN Converts
 /*打开游标后分别保存各个字段值*/
 FETCH NEXT FROM Converts INTO @NAME, @ZIP, @ADDRESS, @TEL, @FAX, @HOMEPAGE, @EMAIL, @MAIN, @AREA, @ENO,@CODE, @KIND, @CATEGORY, @BCATEGORY, @ADV, @MARK, @LOGO
 WHILE @@FETCH_STATUS = 0
 BEGIN
  /*
  获取 所在区域
  */
  IF NOT EXISTS(SELECT TOP 1 * FROM all_Categories WHERE ([Name] = @AREA))
  BEGIN
   INSERT INTO all_Categories([Name], ParentID) VALUES(@AREA, 26)
   PRINT '新加 地区 记录:' + @BCATEGORY
  END
  SELECT @AreaID = ID FROM all_Categories WHERE ([Name] = @AREA)

  /*
  获取 所在企业类别
   大类
  */
  IF NOT EXISTS(SELECT TOP 1 * FROM all_Categories WHERE ([Name] = @BCATEGORY))
  BEGIN
   INSERT INTO all_Categories([Name], ParentID) VALUES(@BCATEGORY, 52)
   PRINT '新加 企业类别--大 记录:' + @BCATEGORY
  END
  SELECT @CategoriesID = ID FROM all_Categories WHERE ([Name] = @BCATEGORY)
  /*
  获取 所在企业类别
   中类
  */
  IF NOT EXISTS(SELECT TOP 1 * FROM all_Categories WHERE ([Name] = @CATEGORY))
  BEGIN
   INSERT INTO all_Categories([Name], ParentID) VALUES(@CATEGORY, @CategoriesID)
   PRINT '新加 企业类别--中 记录:' + @BCATEGORY
  END
  SELECT @CategoriesID = ID FROM all_Categories WHERE ([Name] = @CATEGORY)
  /*
  获取 所在企业类别
   小类
  */
  IF NOT EXISTS(SELECT TOP 1 * FROM all_Categories WHERE ([Name] = @KIND))
  BEGIN
   INSERT INTO all_Categories([Name], ParentID) VALUES(@KIND, @CategoriesID)
   PRINT '新加 企业类别--小 记录:' + @KIND
  END
  SELECT @CategoriesID = ID FROM all_Categories WHERE ([Name] = @KIND)
    
  /*
  将源表记录插入目标表中
  */
  IF NOT EXISTS(SELECT TOP 1 * FROM TABLE1 WHERE ([Name] = @NAME) AND ([ParentID] = @CategoriesID) AND ([pID]=@AreaID) )
  BEGIN
   INSERT INTO TABLE1([Name], [ParentID], [pID], [Source], [URLSource], [Tel], [Fax], [Address], [EMail])
      VALUES(@NAME, @CategoriesID, @AreaID, @MAIN, @HOMEPAGE, @TEL, @FAX, @ADDRESS, @EMAIL)
  END
  ELSE
  PRINT @NAME + ' 已经存在'   
    
  FETCH NEXT FROM Converts INTO @NAME, @ZIP, @ADDRESS, @TEL, @FAX, @HOMEPAGE, @EMAIL, @MAIN, @AREA, @ENO,@CODE, @KIND, @CATEGORY, @BCATEGORY, @ADV, @MARK, @LOGO
 END/*WHILE @@FETCH_STATUS = 0*/
 CLOSE Converts
 DEALLOCATE Converts
  
 SET NOCOUNT OFF


IP 地址: 已登录   来自: 已登录    返回顶部
 第 1 页 总共 1 页 [共有 3 条记录]
ASP.NET Forums » 软件开发 » DELPHI » [Delphi]中山企业数据库区位加密解密

友情链接: hiDotNet官方论坛 | hiDotNet知识库 | 其它友情链接

Asp.Net Forums version: 2.5.2725
(C)Copyright 2004-2007, hiDotNet.com. All Rights Reserved.
意见反馈 | 关于我们

Powered by Community Server :: Forums 中文本地化: hiDotNet.com