119 lines
2.9 KiB
ObjectPascal
119 lines
2.9 KiB
ObjectPascal
unit U_Link;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
IniFiles, Dialogs, ScktComp, ExtCtrls;
|
|
|
|
type
|
|
TCommBlock = record
|
|
workFlag: integer; //0:开始接受字符串,
|
|
linkString: string[255];
|
|
// buf:array [0..Buffersize] of char;
|
|
end;
|
|
|
|
TfrmLink = class(TForm)
|
|
CSocket: TClientSocket;
|
|
AADs: TPanel;
|
|
procedure CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure CSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure CSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
|
|
procedure FormCreate(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
fADOConnString: string;
|
|
LinkFlag: string;
|
|
function LinkTxServer(): Boolean;
|
|
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmLink: TfrmLink;
|
|
|
|
implementation
|
|
//uses U_Main;
|
|
{$R *.dfm}
|
|
|
|
function TfrmLink.LinkTxServer(): Boolean;
|
|
var
|
|
CommBlock: TCommBlock;
|
|
begin
|
|
result := false;
|
|
try
|
|
CommBlock.workFlag := strtointdef(LinkFlag, -1);
|
|
CommBlock.linkString := '';
|
|
CSocket.Socket.SendBuf(CommBlock, SizeOf(CommBlock));
|
|
Result := true;
|
|
except
|
|
Application.MessageBox('连接通讯服务器失败!', '错误信息', MB_ICONERROR);
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmLink.CSocketRead(Sender: TObject; Socket: TCustomWinSocket);
|
|
var
|
|
CommBlock1: TCommBlock;
|
|
begin
|
|
try
|
|
CSocket.Socket.ReceiveBuf(CommBlock1, SizeOf(CommBlock1));
|
|
// fADOConnString := trim(CommBlock1.linkString);
|
|
fADOConnString :='Provider=SQLOLEDB.1;Password=rightsoft@123;Persist Security Info=True;User ID=haoyuesa;Initial Catalog=leixiaofudata;Data Source=47.101.61.158,7781' ;
|
|
ModalResult := 1;
|
|
except
|
|
ModalResult := -1;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmLink.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
Action := cahide;
|
|
end;
|
|
|
|
procedure TfrmLink.CSocketConnect(Sender: TObject; Socket: TCustomWinSocket);
|
|
begin
|
|
if not LinkTxServer() then
|
|
ModalResult := -1;
|
|
end;
|
|
|
|
procedure TfrmLink.FormDestroy(Sender: TObject);
|
|
begin
|
|
frmLink := nil;
|
|
end;
|
|
|
|
procedure TfrmLink.CSocketError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
|
|
begin
|
|
Application.MessageBox('连接通讯服务器失败!', '错误信息', MB_ICONERROR);
|
|
application.Terminate;
|
|
end;
|
|
|
|
procedure TfrmLink.FormCreate(Sender: TObject);
|
|
var
|
|
IniFile: TIniFile;
|
|
LinkServer: string;
|
|
begin
|
|
try
|
|
IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'SYSTEMSET.INI');
|
|
LinkServer := IniFile.ReadString('SERVER', '服务器地址','127.0.0.1');
|
|
// LinkServer := '47.101.61.158';
|
|
LinkFlag := IniFile.ReadString('SERVER', '服务器地址类型', '0');
|
|
finally
|
|
IniFile.Free;
|
|
end;
|
|
|
|
try
|
|
CSocket.Host := trim(LinkServer);
|
|
CSocket.Port := 47936;
|
|
CSocket.Open;
|
|
except
|
|
ModalResult := -1;
|
|
end;
|
|
|
|
end;
|
|
|
|
end.
|
|
|