이즈니님 감사합니다. ^^
idFbDb.DatabaseName := '100.100.100.100\3050\D:\IpAddr\IPDB.FDB'; 를
idFbDb.DatabaseName := '100.100.100.100:D:\IpAddr\IPDB.FDB'; 로 수정했더니
--에러메세지가 다르게 나왔습니다.
EIBClientError 'DPB constant(user) is unknown
그래서 유저명 형식이 틀렸나 해서 수정했습니다.
그랬더니 디비연결이 되었습니다.
아래와 같이
idFbDb.Params.Add('USER,"SYSDBA"');을
idFbDb.Params.Add('USER=SYSDBA');
idFbDb.Params.Add('PASSWORD,"masterkey"');을
idFbDb.Params.Add('PASSWORD=masterkey');
수정하였습니다. ^^
이즈니님 다시한번 감사드립니다. ^^
이즈니 님이 쓰신 글 :
: idFbDb.DatabaseName := '100.100.100.100\3050\D:\IpAddr\IPDB.FDB'; 를
:
: idFbDb.DatabaseName := '100.100.100.100:D:\IpAddr\IPDB.FDB'; 혹은
: idFbDb.DatabaseName := '100.100.100.100/3050:D:\IpAddr\IPDB.FDB';
:
: 유승현 님이 쓰신 글 :
: : 안녕하세요. 파이어버드를 시작한지 하루된 초보 델피언입니다.
: :
: : 제가 만들려고 하는건 간단한 ip정보 입력 프로그램입니다.
: : 사용중인 버전은 Firebird 2.5 입니다.
: : 제 로컬피씨 아이피를 입력해서 테스트 하려고 하는데요.
: : TIBDatabase 컴포넌트에서 Connection을 Local로 하고 테스트 하면 Unvailable Database 오류가 나고
: : Remote로 server를 제 아이피로 protocol을 TCP로 하면 테스트에 성공합니다.
: :
: : 아래는 인터넷에서 찾다가 형식을 수정해서 델파이에 올린 쿼리입니다. 근데 에러가 발생합니다.
: : C:\WINDOWS\system32\drivers\etc\Service 파일에 gds_db 3050/tcp 지정도 되어있습니다.
: : 아시는분 가르침을 부탁드립니다. 초보가 알아들을 수 있도록 ㅠ.ㅠ
: :
: : procedure TForm1.BitBtn1Click(Sender: TObject);
: : var
: : idFbDb : TIBDatabase;
: : itTrans : TIBTransaction;
: : iqSql : TIBQuery;
: : begin
: : // 데이터베이스 설정
: :
: : idFbDb := TIBDatabase.Create(nil);
: :
: : idFbDb.SQLDialect := 3;
: : idFbDb.Params.Add('USER,"SYSDBA"');
: : idFbDb.Params.Add('PASSWORD,"masterkey"');
: : idFbDb.DatabaseName := '100.100.100.100\3050\D:\IpAddr\IPDB.FDB';
: : idFbDb.LoginPrompt := false;
: : idFbDb.Connected := True;
: :
: : // Transaction 설정
: : itTrans := TIBTransaction.Create(nil);
: : itTrans.DefaultDatabase := idFbDb;
: : idFbDb.DefaultTransaction := itTrans;
: :
: : // Query 설정
: : iqSql := TIBQuery.Create(nil);
: : iqSql.Database := idFbDb;
: : iqSql.Transaction := itTrans;
: :
: : iqSql.SQL.Add('INSERT INTO T_PC');
: : iqSql.SQL.Add('(PCID, PCTY, PCMD, PCDT, CPU, MEMORY, HDD)');
: : iqSql.SQL.Add('VALUES');
: : iqSql.SQL.Add('(:P_PCID, :P_PCTY, :P_PCMD, :P_PCDT, :P_CPU, :P_MEMORY, :P_HDD)');
: : iqSql.Prepare;
: : iqSql.ParamByName('P_PCID').AsString := Edit1.Text;
: : iqSql.ParamByName('P_PCTY').AsString := Edit2.Text;
: : iqSql.ParamByName('P_PCMD').AsString := Edit3.Text;
: : iqSql.ParamByName('P_PCDT').AsString := Edit4.Text;
: : iqSql.ParamByName('P_CPU').AsString := Edit5.Text;
: : iqSql.ParamByName('P_MEMORY').AsString := Edit6.Text;
: : iqSql.ParamByName('P_HDD').AsString := Edit7.Text;
: :
: : try
: : if not itTrans.InTransaction then
: : ittrans.StartTransaction;
: : // SQL 문 실행
: : iqSql.ExecSQL;
: : itTrans.Commit;
: : except
: : on e:Exception do
: : end;
: :
: : iqSql.Close;
: : iqSql.Free;
: : itTrans.Free;
: : idFbDb.Free;
: : end;
: :
: : --에러메세지는
: : Unable to complete network request to host "100.100.100.100\3050\D",
: : Failed to locate host machine.
: : The specified name was not found in the hosts file or Domain Name Services'.
|