FDB를 사용하여 Python 스크립트에서 Firebird 데이터베이스를 복원하는 방법은 무엇입니까?

Hganger

Windows10 64 비트 시스템에 Firebird 3.0.4가 설치되고 Python v3.7.7이 설치됩니다.

다음 명령을 사용하여 데이터베이스를 복원 할 수 있습니다.

gbak.exe -r -USER user -PASSWORD password database.fdk database.fdb

Python 스크립트에서 fdb (Firebird Embedded)를 사용하여 동일한 작업을 수행하고 싶지만 작동하지 않습니다!

conn = fdb.services.connect(host='localhost', user='user', password='password', fb_library_name=API)
conn.restore(database.fbk, database.fdb)
restore_report = conn.readlines()

----> 1 conn = fdb.services.connect (host = 'localhost', user = 'user', password = 'password', fb_library_name = API)
2 conn.restore (database.fbk, database.fdb)
3 restore_report = con.readlines ()
4 restore_report

TypeError : connect ()에 예기치 않은 키워드 인수 'fb_library_name'이 있습니다.

conn = fdb.services.connect(host='localhost', user='user', password='password')
conn.restore(database.fbk, database.fdb)
restore_report = conn.readlines()

DatabaseError : ( 'Services / isc_service_attach : \ n- SQLCODE : -902 \ n- "localhost"호스트에 대한 네트워크 요청을 완료 할 수 없습니다. \ n- 연결을 설정하지 못했습니다.', -902, 335544721)

마크 로트 빌

Firebird Embedded를 사용하고 싶다고 가정하면 (이전 질문으로 판단) 다음이 저에게 효과적입니다.

import fdb

fdb.load_api('C:/Program Files/Firebird/Firebird-3.0.5.33220-0_x64/fbclient.dll')

def report_progress(line):
    print(line)

svc = fdb.services.connect(user='sysdba', password='masterkey')
svc.restore('c:/db/somedatabase.fbk', 'c:/db/somedatabase.fdb', callback=report_progress)

즉, fbclient.dllFirebird 임베디드와 관련된 것을 명시 적으로로드하고 ( Python 스크립트 내에서 불가능한 로컬 데이터베이스의 Firebird 연결 참조 )에서 호스트 이름을 지정하지 마십시오. fdb.services.connect따라서 로컬 호스트에 연결하는 대신 Firebird Embedded 서비스 관리자를 사용합니다. Firebird Server (귀하의 경우에는 실행되지 않음).

진행 상황을보고하는 데 사용하는 콜백 대신 readlines()또는 wait()메서드를 사용할 수도 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관