為什麼資料庫沒辦法存檔呢? |
尚未結案
|
brad
一般會員 ![]() ![]() 發表:4 回覆:6 積分:2 註冊:2005-03-11 發送簡訊給我 |
|
carter6
初階會員 ![]() ![]() 發表:53 回覆:108 積分:42 註冊:2002-12-16 發送簡訊給我 |
|
pillar62
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
brad
一般會員 ![]() ![]() 發表:4 回覆:6 積分:2 註冊:2005-03-11 發送簡訊給我 |
procedure TForm1.Button4Click(Sender: TObject);
var
str,cal,ap_st,ap_re,be_st,be_re,temp : string;
no : integer;
begin str := table1.Lookup('type','apple','stock');
no := StrToInt(str)-1;
table1.First; table1.Edit;
table1.FieldByName('stock').Value := IntToStr(no); cal := table1.FieldByName('revenue').Value ;
cal := inttostr(strtoint(cal) 16);
table1.FieldByName('revenue').Value := cal; table1.Post;
..
end;
還是把程式寄給你看看,有點大說...
|
brad
一般會員 ![]() ![]() 發表:4 回覆:6 積分:2 註冊:2005-03-11 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ str := table1.Lookup('type','apple','stock');
以上段程式碼應是錯誤的寫法吧﹐您的程式可以正常Run嗎﹖資料集元件的Lookup方法應要注明回傳值﹐如下﹕
Var FindResult : Variant; Str : String; begin FindResult := Table1.Lookup('欄位一;欄位二;欄位三'), VarArrayOf([值一,值二,值三]), '回傳欄位名'); if Not VarIsNull(FindResult) then begin Str := VarToStr(FindResult); ShowMessage(Str); end; end;=================================
------
忻晟 |
lcjan
初階會員 ![]() ![]() 發表:11 回覆:60 積分:29 註冊:2002-03-13 發送簡訊給我 |
|
brad
一般會員 ![]() ![]() 發表:4 回覆:6 積分:2 註冊:2005-03-11 發送簡訊給我 |
程式可以run,
str := table1.Lookup('type','apple','stock');它會回傳stock這個欄位值,
這只是程式部份而己
server端的程式
unit Unit1_controller; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, ScktComp, ComCtrls, Grids, DBGrids; type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Database1: TDatabase;
Table1: TTable;
DataSource1: TDataSource;
ServerSocket1: TServerSocket;
Button1: TButton;
Button2: TButton;
StatusBar1: TStatusBar;
ListBox1: TListBox;
Button3: TButton;
DBGrid1: TDBGrid;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Open;
StatusBar1.SimpleText := 'Run Server Time : ' DateTimeToStr(now);
Button1.Enabled := false;
Button2.Enabled := true;
end; procedure TForm1.Button2Click(Sender: TObject);
begin
ServerSocket1.Close;
StatusBar1.SimpleText := 'Close Server Time : ' DateTimeToStr(now);
Button1.Enabled := true;
Button2.Enabled := false;
end; procedure TForm1.ServerSocket1ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
var i : integer;
begin memo1.lines.clear; // Memo1用來顯示目前所有的Client通道編號
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do // 一個一個Client找
begin
if ServerSocket1.Socket.Connections[i].SocketHandle=Socket.SocketHandle then // 如果找到目前連上的通道
ListBox1.Items.Add('*' inttostr(Socket.SocketHandle)) // 通道編號前面加一*號代表剛連上線的Client
else
listBox1.Items.Add(inttostr(ServerSocket1.Socket.Connections[i].SocketHandle)); // 通到編號加入memo1中
end; StatusBar1.SimpleText := 'OnLine Time : ' DateTimeToStr(now);
Button1.Enabled := False;
Button2.Enabled := False;
end; procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Socket.Close;
end; procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
//FindResult : variant;
s ,s1: String;
k,i : Integer;
t: TMemo ;
begin
//k := ServerSocket1.Socket.Connections[k].SocketHandle;
// k := ListBox1.Items.IndexOf(Socket.RemoteAddress) 1;
// s := ServerSocket1.Socket.Connections[k].ReceiveText;
{FindResult :=Table1.lookup('ip',socket.RemoteAddress,'machine');
if NOT VarIsNull(FindResult) then
memo1.Lines.Add(Findresult 'Online'); } s:= Socket.ReceiveText ;
if Length(Trim(s)) = 1 then begin
try
t:= TMemo(FindComponent('Memo' s)) ;
t.Clear ;
except
end ;
exit ;
end ; Table1.Edit;
i := 2;
s1 := Copy(s,1,i-1); if s1 = '1' then
begin
ListBox1.Items.Add(table1.Lookup('check',s1,'machine') '動作中');
GroupBox1.Caption := table1.Lookup('check',s1,'machine');
table1.Edit;
//i := 2;
s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applestock').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applerevenue').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('beerstock').Value := s1; s := Copy(s,i 1,Length(s)-i);
s1 := Copy(s,1,Length(s));
table1.FieldByName('beerrevenue').Value := s1;
Table1.Post; Table1.MoveBy(0);
memo1.Lines.Add('Apple 庫存量:' table1.FieldByName('applestock').Value);
memo1.Lines.Add('Beer 庫存量:' table1.FieldByName('beerstock').Value);
memo1.Lines.Add('Apple 收入:' table1.FieldByName('applerevenue').Value);
memo1.Lines.Add('Beer 收入:' table1.FieldByName('beerrevenue').Value);
end;
if s1 = '2' then
begin
ListBox1.Items.Add(table1.Lookup('check',s1,'machine') '動作中');
GroupBox2.Caption := table1.Lookup('check',s1,'machine');
table1.Edit;
//i := 2;
s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applestock').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applerevenue').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('beerstock').Value := s1; s := Copy(s,i 1,Length(s)-i);
s1 := Copy(s,1,Length(s));
table1.FieldByName('beerrevenue').Value := s1;
Table1.Post; Table1.MoveBy(1);
memo2.Lines.Add('Apple 庫存量:' table1.FieldByName('applestock').Value);
memo2.Lines.Add('Beer 庫存量:' table1.FieldByName('beerstock').Value);
memo2.Lines.Add('Apple 收入:' table1.FieldByName('applerevenue').Value);
memo2.Lines.Add('Beer 收入:' table1.FieldByName('beerrevenue').Value);
end;
if s1 = '3' then
begin
ListBox1.Items.Add(table1.Lookup('check',s1,'machine') '動作中');
GroupBox3.Caption := table1.Lookup('check',s1,'machine');
table1.Edit;
//i := 2;
s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applestock').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applerevenue').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('beerstock').Value := s1; s := Copy(s,i 1,Length(s)-i);
s1 := Copy(s,1,Length(s));
table1.FieldByName('beerrevenue').Value := s1;
Table1.Post; Table1.MoveBy(2);
memo3.Lines.Add('Apple 庫存量:' table1.FieldByName('applestock').Value);
memo3.Lines.Add('Beer 庫存量:' table1.FieldByName('beerstock').Value);
memo3.Lines.Add('Apple 收入:' table1.FieldByName('applerevenue').Value);
memo3.Lines.Add('Beer 收入:' table1.FieldByName('beerrevenue').Value);
end;
if s1 = '4' then
begin
ListBox1.Items.Add(table1.Lookup('check',s1,'machine') '動作中');
GroupBox4.Caption := table1.Lookup('check',s1,'machine');
table1.Edit;
//i := 2;
s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applestock').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('applerevenue').Value := s1; s := Copy(s,i 1,Length(s)-i);
i := Pos(',',s);
s1 := Copy(s,1,i-1);
table1.FieldByName('beerstock').Value := s1; s := Copy(s,i 1,Length(s)-i);
s1 := Copy(s,1,Length(s));
table1.FieldByName('beerrevenue').Value := s1;
Table1.Post; Table1.MoveBy(3);
memo4.Lines.Add('Apple 庫存量:' table1.FieldByName('applestock').Value);
memo4.Lines.Add('Beer 庫存量:' table1.FieldByName('beerstock').Value);
memo4.Lines.Add('Apple 收入:' table1.FieldByName('applerevenue').Value);
memo4.Lines.Add('Beer 收入:' table1.FieldByName('beerrevenue').Value);
end;
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ServerSocket1.Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
table1.First;
memo1.Lines.Add('Apple 庫存量:' table1.FieldByName('applestock').Value);
memo1.Lines.Add('Beer 庫存量:' table1.FieldByName('beerstock').Value);
memo1.Lines.Add('Apple 收入:' table1.FieldByName('applerevenue').Value);
memo1.Lines.Add('Beer 收入:' table1.FieldByName('beerrevenue').Value);
end; procedure TForm1.Button4Click(Sender: TObject);
begin
Table1.Next;
end; procedure TForm1.Button5Click(Sender: TObject);
begin
Table1.Prior;
end; procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active := true;
end; procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var i : integer;
begin
// memo1.lines.clear; // Memo1用來顯示目前所有的Client通道編號
for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do // 一個一個Client找
ListBox1.Items.Add(inttostr(ServerSocket1.Socket.Connections[i].SocketHandle)); // 通到編號加入memo1中
ListBox1.Items.add('-' inttostr(Socket.SocketHandle)) // 通道編號前面加一x號代表剛離開的Client end; end.
client端的程式
unit Unit1; interface uses
MachineNo,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, ScktComp, ComCtrls, Grids, DBGrids,
xmldom, XMLIntf, msxmldom, XMLDoc; type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit2: TEdit;
Button4: TButton;
Button5: TButton;
Database1: TDatabase;
Table1: TTable;
DataSource1: TDataSource;
ClientSocket1: TClientSocket;
Button6: TButton;
StatusBar1: TStatusBar;
DBGrid1: TDBGrid;
Button7: TButton;
Button8: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure CheckMoney;
procedure Button5Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button6Click(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
MachineID: String ; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);
var
str : String;
begin
str := edit1.Text;
edit1.Text := IntToStr(StrToInt(str) 5);
CheckMoney;
end; procedure TForm1.Button2Click(Sender: TObject);
var
str : String;
begin
str := edit1.Text;
edit1.Text := IntToStr(StrToInt(str) 10);
CheckMoney;
end; procedure TForm1.Button3Click(Sender: TObject);
begin
Edit2.Text := Edit1.Text;
Edit1.Text := '0';
Button4.Enabled := false;
Button5.Enabled := false;
end; procedure TForm1.Button4Click(Sender: TObject);
var
str,cal,ap_st,ap_re,be_st,be_re,temp : string;
no : integer;
begin str := table1.Lookup('type','apple','stock');
no := StrToInt(str)-1;
table1.First; table1.Edit;
table1.FieldByName('stock').Value := IntToStr(no); cal := table1.FieldByName('revenue').Value ;
cal := inttostr(strtoint(cal) 16);
table1.FieldByName('revenue').Value := cal; table1.Post;
//PostInfo;
Edit2.Text := intToStr(StrToInt(Edit1.Text) - 16);
Button4.Enabled := false;
Button5.Enabled := false;
Edit1.Text := '0';
//PostInfo;
Table1.First;
ap_st := Table1.FieldByName('stock').Value;
ap_re := Table1.FieldByName('revenue').Value;
table1.Last;
be_st := Table1.FieldByName('stock').Value;
be_re := Table1.FieldByName('revenue').Value;
temp := (MachineID ',' ap_st ',' ap_re ',' be_st ',' be_re);
ClientSocket1.Socket.SendText(temp);
end;
procedure TForm1.CheckMoney;
var
str : String;
checkno : integer;
begin
str := Edit1.Text;
checkno := StrToInt(str);
if checkno >= 16 then button4.Enabled := true;
if checkno >= 21 then
begin
button4.Enabled := true;
button5.Enabled := true;
end;
end; procedure CalculateMoney; begin end;
procedure TForm1.Button5Click(Sender: TObject);
var
str,cal,ap_st,ap_re,be_st,be_re,temp : string;
no : integer;
begin str := table1.Lookup('type','beer','stock');
no := StrToInt(str)-1; table1.Last; table1.Edit;
table1.FieldByName('stock').Value := IntToStr(no);
cal := table1.FieldByName('revenue').Value ;
cal := inttostr(strtoint(cal) 21 );
table1.FieldByName('revenue').Value := cal;
table1.Post;
//PostInfo;
Edit2.Text := intToStr(StrToInt(Edit1.Text) - 21);
Button4.Enabled := false;
Button5.Enabled := false;
Edit1.Text := '0';
//PostInfo;
Table1.First;
ap_st := Table1.FieldByName('stock').Value;
ap_re := Table1.FieldByName('revenue').Value;
table1.Last;
be_st := Table1.FieldByName('stock').Value;
be_re := Table1.FieldByName('revenue').Value;
temp := ('1' ',' ap_st ',' ap_re ',' be_st ',' be_re);
ClientSocket1.Socket.SendText(temp);
end; procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
var
ap_st,ap_re,be_st,be_re,temp : String;
begin
StatusBar1.SimpleText :='Connect Time :' DateTimeToStr(now);
Button6.Enabled := false;
//PostInfo;
Table1.First;
ap_st := Table1.FieldByName('stock').Value;
ap_re := Table1.FieldByName('revenue').Value;
table1.Last;
be_st := Table1.FieldByName('stock').Value;
be_re := Table1.FieldByName('revenue').Value;
temp := ('1' ',' ap_st ',' ap_re ',' be_st ',' be_re);
ClientSocket1.Socket.SendText(temp);
end; procedure TForm1.Button6Click(Sender: TObject);
begin
ClientSocket1.Open;
end; procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
StatusBar1.SimpleText :='ERROR Time :' DateTimeToStr(now);
Button6.Enabled := true;
ClientSocket1.Close;
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
temp: String ;
begin
table1.Close;
temp := ('1');
ClientSocket1.Socket.SendText(temp);
ClientSocket1.Close;
end; procedure TForm1.Button7Click(Sender: TObject);
begin
Table1.Prior;
end; procedure TForm1.Button8Click(Sender: TObject);
begin
Table1.Next;
end; procedure TForm1.FormCreate(Sender: TObject);
var
s: String ;
t: IXMLTheMachineType ;
begin
t:= LoadTheMachine('.\Machine.xml') ;
Self.Caption:= t.Name ;
MachineID:= t.Id ;
s:= 'DB' MachineID ;
Database1.DatabaseName:= s ;
Database1.AliasName:= s MachineID ;
Database1.Connected:= True ;
Table1.DatabaseName:= s ;
Table1.TableName:= 'Table' ;
Table1.Active:= True ;
table1.Open;
end; end.
各位大大幫我看看吧!!!!求救!
|
brad
一般會員 ![]() ![]() 發表:4 回覆:6 積分:2 註冊:2005-03-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |