unit U_DataLink; interface uses SysUtils, Classes, DB, ADODB, ImgList, Controls, cxStyles, cxLookAndFeels, Windows, Messages, forms, OleCtnrs, DateUtils, ExtCtrls, SyncObjs, cxClasses, dxSkinsCore, dxSkinsDefaultPainters, System.ImageList, dxSkinBasic, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine, dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark, dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinWXI, dxSkinXmas2008Blue, U_BaseDataLink, dxCore, cxLocalization, cxImageList, cxGraphics, dxSkinsForm; type TMyThread = class(TThread) protected procedure Execute; override; end; var DConString: string; {ȫ�������ַ���} server, dtbase, user, pswd: string; {���ݿ����Ӳ���} DCurHandle: hwnd; //��ǰ������ DName: string; //#�û���#// DCode: string; //#�û����#// Ddatabase: string; //#���ݿ�����#// DTitCaption: string; //#����������#// PicSvr: string; fDllFileName: string; DParameters1, DParameters2, DParameters3, DParameters4, DParameters5: string; // �ⲿ������ DParameters6, DParameters7, DParameters8, DParameters9, DParameters10: string; //�ⲿ������ OldDllApp: Tapplication; //����ԭ�о�� NewDllApp: Tapplication; //��ǰ��� MainApplication: Tapplication; DFormCode: integer; //��ǰ���ں� IsDelphiLanguage: integer; DServerDate: TdateTime; //������ʱ�� DCompany: string; //��˾ IpCall: Integer; IpWLDZStr: string; UserDataFlag: string; type TDataLink_KnitPlan = class(TBaseDataLink) AdoDataLink: TADOQuery; ADOLink: TADOConnection; ThreeImgList: TImageList; ThreeLookAndFeelCol: TcxLookAndFeelController; ThreeColorBase: TcxStyleRepository; SHuangSe: TcxStyle; SkyBlue: TcxStyle; Default: TcxStyle; QHuangSe: TcxStyle; Red: TcxStyle; FontBlue: TcxStyle; TextSHuangSe: TcxStyle; FonePurple: TcxStyle; FoneClMaroon: TcxStyle; FoneRed: TcxStyle; RowColor: TcxStyle; handBlack: TcxStyle; cxBlue: TcxStyle; SHuangSeCu: TcxStyle; Timer_link: TTimer; ImageList_new32: TImageList; procedure DataModuleDestroy(Sender: TObject); procedure Timer_linkTimer(Sender: TObject); procedure DataModuleCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; TMakebar = procedure(ucData: pchar; nDataLen: integer; nErrLevel: integer; nMask: integer; nBarEdition: integer; szBmpFileName: pchar; nScale: integer); stdcall; TMixtext = procedure(szSrcBmpFileName: PChar; szDstBmpFileName: PChar; sztext: PChar; fontsize, txtheight, hmargin, vmargin, txtcntoneline: integer); stdcall; var DataLink_KnitPlan: TDataLink_KnitPlan; CriticalSection: TCriticalSection; {�����ٽ�} implementation {$R *.dfm} procedure TMyThread.Execute; begin FreeOnTerminate := True; CriticalSection.Enter; try with DataLink_KnitPlan.AdoDataLink do begin close; sql.Clear; sql.Add('select getdate()'); open; end; except try with DataLink_KnitPlan.ADOLink do begin Connected := false; ConnectionString := DConString; LoginPrompt := false; Connected := true; end; except end; end; CriticalSection.Leave; end; procedure TDataLink_KnitPlan.DataModuleDestroy(Sender: TObject); begin inherited; CriticalSection.Free; DataLink_KnitPlan := nil; end; procedure TDataLink_KnitPlan.Timer_linkTimer(Sender: TObject); begin TMyThread.Create(False); end; procedure TDataLink_KnitPlan.DataModuleCreate(Sender: TObject); begin inherited; CriticalSection := TCriticalSection.Create; end; end.