服务器上数据库文件是否存在,肿么把SQL服务器上的数据库以文件形式存储

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ScktComp, StdCtrls;

type

TCon = record

FileName : String;

TotalSize : Integer;

Status : Integer;

end;

PCON = ^TCON;

TForm1 = class(TForm)

SS: TServerSocket;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure SSClientConnect(Sender: TObject; Socket: TCustomWinSocket);

procedure SSClientRead(Sender: TObject; Socket: TCustomWinSocket);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

SS.Port := 9000;

SS.Active := True;

end;

procedure TForm1.SSClientConnect(Sender: TObject;

Socket: TCustomWinSocket);

var c : pcon;

begin

c :=new(pcon);

c.FileName := '';

c.TotalSize := 0

c.Status := 0;

Socket.Data := c;

Socket.SendText('已经连接,请输入UPLOAD FILENAME SIZE'#13#10);

end;

procedure TForm1.SSClientRead(Sender: TObject; Socket: TCustomWinSocket);

var C : PCON;

cmd:String;

Buffer : pointer;

nRetr : integer;

fs : TFileStream;

const bufferSize = 1024

begin

C:= Socket.Data

case c.Status of

0 :

begin

cmd := trim(Socket.ReceiveText)

if Pos('UPLOAD ',uppercase(cmd)) 0 then

begin

c.FileName := trim(Copy(cmd,Pos(' ',cmd)+1,Length(cmd)));

c.TotalSize := StrToInt(Copy(c.FileName,Pos(' ',c.FileName)+1,Length(c.FileName)));

c.FileName := trim(Copy(c.FileName,1,Pos(' ',c.FileName)));

c.Status := 1;

Socket.Data := C;

Socket.SendText('you can send File !'#13#10);

end;

end;

1 : begin

GetMem(Buffer,BufferSize);

nRetr := Socket.ReceiveBuf(Buffer^,BufferSize);

if not FIleExists('c:\'+c.FileName) then

begin

fs :=TFileStream.Create('c:\'+c.FileName,fmCreate or fmShareDenyNone);

fs.Seek(0,soFromBeginning);

end

else

begin

fs :=TFileStream.Create('c:\'+c.FileName,fmOpenWrite or fmShareDenyNone);

fs.Seek(0,soFromEnd);

end;

fs.WriteBuffer(Buffer^,nRetr);

fs.Destroy;

FreeMem(Buffer);

end;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form2.Show;

end;

end.

--------------------------------------------------------------------------------

来自:唐晓锋 时间:99-11-30 01:17:19 ID:162654

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ScktComp;

type

TForm2 = class(TForm)

CS: TClientSocket;

OpenDialog1: TOpenDialog;

Memo1: TMemo;

Button1: TButton;

Edit1: TEdit;

Button2: TButton;

SendCommand: TButton;

Label1: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure SendCommandClick(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure CSRead(Sender: TObject; Socket: TCustomWinSocket);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.DFM}

function GetFileSize(const FileName: string):integer;

var f : TFileStream;

begin

f := TFileStream.Create(FileName,fmOpenRead or fmShareDenyNone);

Result :=f.Size;

F.Free;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

with OpenDialog1 do

begin

Execute;

if FileName '' then

begin

Edit1.Text := 'UPLOAD '+ ExtractFileName(FileName) +' '+Inttostr(GetFileSize(FileName));

Label1.Caption := FileName;

cs.Socket.SendText(edit1.Text);

end;

end;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

CS.Active := True;

end;

procedure TForm2.SendCommandClick(Sender: TObject);

var fs : TFileStream;

Buf : pointer;

begin

//CS.Socket.SendText(Edit1.Text+#13#10);

//Memo1.Lines.Add();

fs := TFileStream.Create(Label1.Caption ,fmOpenRead or fmShareDenyNone);

GetMem(Buf,fs.Size);

fs.Seek(0,soFromBeginning);

fs.ReadBuffer(Buf^,fs.Size);

memo1.Lines.Add('has send : '+inttostr(Cs.Socket.SendBuf(Buf^,fs.Size)));

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

cs.Close;

end;

procedure TForm2.CSRead(Sender: TObject; Socket: TCustomWinSocket);

begin

Memo1.Lines.add(socket.receiveText);

end;

end.

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值