⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataaccesscommonshell.pas

📁 招投标软件代码,很有应用价值,请大家参考下哦,不明白的地方给我留言
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{ *********************************************************************** }
{ 公共访问数据库函数单元                                                  }
{                                                                         }
{                                                                         }
{                                                                         }
{                                                                         }
{                                                                         }
{ *********************************************************************** }
unit DataAccessCommonShell;

interface

uses
  Classes, DB, ADODB, IdGlobal, SysUtils, SystemObject, Forms, Windows,
  Variants, Dialogs,StdCtrls,XMLIntf,XMLDoc,Controls;

  procedure DACShellGetParentMenu(AMenuList:Tlist;userid:string);//生成outlooktoolbar父菜单
  procedure DACShellGetChildMenu(ParentCode: string;ChildList: TList;user_name:String);   //加载子菜单
  function  DelAddInS(sSQL:string):boolean;     //访问数据库
  function LeibieExist(str:string):boolean;//判断类别是否存在
  procedure GetXmbdgc(Axm_name,Azblx_name,Agclx_name:string);   //给变量项目标段工程类型赋值
  procedure GetXMleibie(ACom:Tcombobox);//动态赋项目类别信息
  procedure GetItems(com_xmname,com_zhaobiao,com_gclxname:TCombobox;aZHuangtai:Integer);
    //加载XML文件的数据部分
  procedure MakeXmlFile(Axm_name,Azblx_name,Agclx_name:string;AFilePath:String);
  function  IsADOConnect(Aado:tadoconnection;Server: string;WindowsMode: Boolean = True;LoginID:string='';
    LoginPassword:string='';DBName:string=''):Boolean;
  Function  GetDatabaseList(WindowsMode:boolean;Server,LoginID,LoginPassword:string;
    AList: TStrings):boolean;
  function TestConnectServer(WindowsMode: boolean;Server,LoginID,LoginPassword: string; DBName: string = ''): integer;



implementation

uses
  DataModule,unit_public;

function TestConnectServer(WindowsMode: boolean;Server,LoginID,LoginPassword: string; DBName: string = ''): integer;
var
  ADOConnection: TADOConnection;
begin
  Result := 0;
  if (Server = '') and (LoginID = '') then
    Exit;
  try
    ADOConnection := TADOConnection.Create(nil);
    try
      try
        ADOConnection.ConnectionString := BuildConnectString(Server,WindowsMode,LoginID,LoginPassword,DBName);
        ADOConnection.LoginPrompt := False;
        ADOConnection.Open;
        Result := 1;
      except
      end;
    finally
      ADOConnection.Close;
      ADOConnection.Free;
    end;
  except
  end;
end;

function  IsADOConnect(Aado:tadoconnection;Server: string;WindowsMode: Boolean = True;LoginID:string='';
  LoginPassword:string='';DBName:string=''):Boolean;
var
  adoquery:tadoquery;
begin
  Result:=True;
  try
    Aado.Close;
    Aado.ConnectionString := BuildConnectString(Server,WindowsMode,LoginID,LoginPassword,DBName);
    Aado.LoginPrompt := False;
    Aado.Open;
    adoquery:=tadoquery.Create(nil);
    try
      adoquery.close;
      adoquery.Connection:=aado;
      adoquery.SQL.Text:='select * from bid_xmgczb';
      adoquery.Open;
    finally
      freeandnil(adoquery);
    end;
  except
    Result:=False;
  end;
end;

Function GetDatabaseList(WindowsMode:boolean;Server,LoginID,LoginPassword:string;
    AList: TStrings):boolean;
const
  SQL = 'select name as dbname from master.dbo.sysdatabases';
var
  ADOQuery: TADOQuery;
begin
  Result := False;
  if AList = nil then Exit;
  AList.Clear;
  Screen.Cursor:=crHourGlass;
  try
    ADOQuery:=TADOQuery.Create(nil);
    try
      try
        ADOQuery.ConnectionString := BuildConnectString(Server,WindowsMode,LoginID,LoginPassword);
        ADOQuery.SQL.Text := SQL;
        ADOQuery.Open;
        ADOQuery.First;
        while not ADOQuery.Eof do
        begin
          AList.Add(ADOQuery.FieldByName('dbname').AsString);
          ADOQuery.Next;
        end;
        Result:=true;
      except
      end;
    finally
      ADOQuery.Close;
      ADOQuery.Free;
    end;
  except
  end;
  Screen.Cursor:=crDefault;
end;

procedure  DACShellGetParentMenu(AMenuList:Tlist;userid:string);
var
  ssql:string;
  adoquery:tadoquery;
  MenuData: PMenuData;
begin
  ssql:='select * from bid_menu where layer=0 and MENU_id in '
       +' (select menu_id from BID_USERROLE '
       +' where user_id in (select user_id from bid_user where login_name='''+trim(userid)+''')) order by order_num ';
  adoquery:=tadoquery.Create(nil);
  try
    with adoquery do
    begin
      Connection:=DataModule1.ADOMainConn;
      Close;
      SQL.Clear;
      SQL.Text:=ssql;
      Open;
      first;
      while not Eof do
      begin
        New(MenuData);
        MenuData.MenuCode := FieldByName('MENU_CODE').AsString;
        MenuData.MenuName := FieldByName('MENU_NAME').AsString;
        MenuData.SysCode := FieldByName('SYS_CODE').AsString;
        MenuData.MethodParam := FieldByName('METHOD_PARAM').AsString;
        MenuData.Apply := FieldByName('APPLY').AsInteger;
        MenuData.BackGround := FieldByName('BACKGROUND').AsString;
        AMenuList.Add(MenuData);
        Next;
      end;
    end;
  finally
    freeandnil(adoquery);
  end;
end;


procedure GetItems(com_xmname,com_zhaobiao,com_gclxname:TCombobox;aZHuangtai:Integer);
var
  adoquery :Tadoquery;
  i    :Integer;
begin
  adoquery:=tadoquery.create(nil);
  try
    adoquery.Close;
    adoquery.Connection:=DataModule1.ADOMainConn;
    adoquery.SQL.Text:='select xm_name  from bid_xiangmu_xinxi ';
    adoquery.Open;
    adoquery.First;
    com_xmname.Items.Clear;
    for i:=0 to adoquery.RecordCount-1 do
    begin
      com_xmname.items.add(adoquery.FieldByName('xm_name').AsString);
      adoquery.Next;
    end;
    adoquery.Close;
    if azhuangtai=1 then
      adoquery.SQL.Text:='select zblx_name  from bid_zhaobiao_leixing'
        +' where zblx_name<>''设计'''
    else if azhuangtai=2 then
      adoquery.SQL.Text:='select zblx_name  from bid_zhaobiao_leixing';
    adoquery.Open;
    adoquery.First;
    com_zhaobiao.Items.Clear;
    for i:=0 to adoquery.RecordCount-1 do
    begin
      com_zhaobiao.items.add(adoquery.FieldByName('zblx_name').AsString);
      adoquery.Next;
    end;
    adoquery.Close;
    adoquery.SQL.Text:='select gclx_name  from bid_gongcheng_leixing ';
    adoquery.Open;
    adoquery.First;
    com_gclxname.Items.Clear;
    for i:=0 to adoquery.RecordCount-1 do
    begin
      com_gclxname.items.add(adoquery.FieldByName('gclx_name').AsString);
      adoquery.Next;
    end;
  finally
    freeandnil(adoquery);
  end;
  if xmbdgc.XM_ISBn='000'  then com_xmname.Text:='请选择项目'
  else
  begin
    com_xmname.Text:=xmbdgc.XM_NAME;
    com_xmname.itemindex:=com_xmname.items.indexof(com_xmname.text);
  end;
  if xmbdgc.BDLX_ID='0'  then
  begin
    com_zhaobiao.Text:='施工';
    com_zhaobiao.itemindex:=com_zhaobiao.items.indexof(com_zhaobiao.text);
  end
  else
  begin
    com_zhaobiao.Text:=xmbdgc.BDLX_NAME;
    com_zhaobiao.itemindex:=com_zhaobiao.items.indexof(com_zhaobiao.text);
  end;
  if xmbdgc.gCLX_ID='0'  then com_gclxname.Text:='请选择工程类型'
  else
  begin
    com_gclxname.Text:=xmbdgc.GCLX_NAME;
    com_gclxname.itemindex:=com_gclxname.items.indexof(com_gclxname.text);
  end;  
end;

procedure GetXMleibie(ACom:Tcombobox);//动态赋项目类别信息
var
  adoquery:tadoquery;
  i:Integer;
begin
  acom.Items.Clear;
  adoquery:=tadoquery.create(nil);
  try
    adoquery.Close;
    adoquery.Connection:=datamodule1.ADOMainConn;
    adoquery.SQL.Text:='select bd_leibie from bid_biaoduan_xinxi where xmgczb_id in'
      +'(select xmgczb_id from bid_xmgczb '
      +' where xm_isbn='''+trim(xmbdgc.XM_ISBn)+''' and gclx_id='+xmbdgc.gCLX_ID
      +' and zblx_id='+xmbdgc.BDLX_ID+') group by bd_leibie';
    adoquery.Open;
    for i:=0 to adoquery.RecordCount-1 do
    begin
      if adoquery.FieldByName('bd_leibie').AsString='0' then
      begin
        acom.Items.Add('无类别');
        Acom.Enabled:=false;
        acom.ItemIndex:=0;
        adoquery.next;
        break;
      end;
      if adoquery.FieldByName('bd_leibie').AsString='1' then
      begin
        acom.Items.Add('第一类');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -