원래 파라독스를 이용해 저의 작은 식당에 사용되어지는 프로그램을 자작해서 사용중입니다.
이번에 필요에 의해 2대의 컴을 이용해 네트웍크로 연결해 다중으로 사용하고자 기존 프로그램을
파이어버드로 갈아타려고 공부중에 있습니다.
네트웍환경은 처음이라 시작부터 난관에 부딪혀 고수님들의 도움을 얻고자하오니 많은 조언 부탁드림니다.
1. 먼저 개발환경은 winXP sp3 +델파이7 + ZEOSDBO 7 + Firebird-2.1.3.18185_0_Win32.exe 입니다.
2. 1번컴과 2번컴이 있고 현재 공유기로 인터넷을 공유중에 있습니다.
3. 1번컴을 서버로 사용하고 현재 1번컴에서 코딩을 하고 있습니다.
4. 1번 서버컴에서는 아래와 같이 코딩했을시 접속이 잘되고 자료도 잘보여집니다.
5. 코딩내용은 별것이 없고 2번컴에서 1번컴에있는 'TESTFBDB.FDB' DB내용을 보고자하는것인데
2번 클라이언트컴에서 1번 서버컴으로 연결이 되지 않아 전혀 진척을 내지 못하고 있습니다.
6. 현재 1번서버컴의 할당IP는 192,168.10.100이며 2번클라이언트컴의 할당IP 192.168.10.101입니다.
7. 2번컴에서 Ping테스트시 -> ping 192.168.10.100 하면 에러는 없습니다.
8. 2번컴에서 Telnet테스트시 -> telnet 192.168.10.100 3050해도 에러없이 작동합니다.
9. IP주소가 문제인것같은데 대체 서버IP가 어디가 문제인지 고민을 해도 알수가 없어 도움음 요청합니다.
간략코딩개요) ZConnection1로 서버의 'TESTFBDB.FDB'를 연결하고
ZTable1로 활성화된것을 -> TDBGrid에 자료를 뿌러주는것입니다.
그냥 클라이언트에서 서버로 접속이되는지 테스트하기위한 것에 불과하지만
이것이 해결되지 않으면 더이상 진행이 불과한지라 꼭 해결될수 있도록
도움을 주시면 고맙겠습니다.
코드시작 : <!--CodeS-->
unit TestU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ZAbstractRODataset, ZAbstractDataset,
ZAbstractTable, ZDataset, ZConnection, StdCtrls;
type
TForm1 = class(TForm)
ZConnection1: TZConnection;
ZTable1: TZTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
try
ZConnection1.Protocol := 'firebird-2.1' ;
ZConnection1.Database := 'C:\Borland\TestDb\TESTFBDB.FDB' ;
ZConnection1.User := 'sysdba' ;
ZConnection1.Password := 'masterkey' ;
ZConnection1.HostName := '192.168.10.100';
//위부분을 ZConnection1.Database := '192.168.10.100:C:\Borland\TestDb\TESTFBDB.FDB'
로 해도 같은것으로 압니다. ;
ZConnection1.Port := 3050 ;
ZConnection1.Connect ; // 또는 ZConnection1.Connected := True ;
ZTable1.Active := True; //테이블을 True로 만들어야 디비그리드에 자료가 나옵니다.
except
showmessage('데이타 서버와의 접속이안됩니다!!! 서버와의 접속을 다시 한번 확인하여 주세요');
exit ;
end;
end;
end.
<!--CodeE-->
try except 예외문장을 사용하지 않고 그냥 돌리면 클라이언트컴에서
" none of the dynamic libraries can be found : fbclient21.dll , fbclient.dll " 이라는
에러가 납니다.
system32폴드에 fbclient.dll파일을 서버컴 , 클라이언트 둘다 다시한번 카피해도 똑같은 에러입니다.
fbclient21.dll 파일은 존재하지 않는 파일인데 무엇인지 모르겠습니다.
firebird.conf의
RemoteServiceName = gds_db
RemoteServicePort = 3050
주석도 제거하였습니다.
간단한것을 혹여나 빈폐를 끼치는 질문이 될까하여 나름 자세히 적었습니다.
네이브.델마당,이곳의 자료등 많이 검색하고 여러가지 방법을 써보았지만 잘되지 않는것 같습니다.
이글을 읽어시는 모든 분들의 하루하루 좋은일만 함께하기를 기원합니다.
그럼 많은 답변기다리겠습니다. 수고하세요.