📄 dataaccesscommonshell.pas
字号:
{ *********************************************************************** }
{ 公共访问数据库函数单元 }
{ }
{ }
{ }
{ }
{ }
{ *********************************************************************** }
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 + -