2009-10-08 5 views
1

PowerBuilder를 처음 사용합니다.PowerBuilder DSN Creation

MSAccess 테이블에서 데이터를 검색하고 해당 SQL 테이블로 업데이트하려고합니다. 같은 테이블 정보로 다른 MSAccess 파일을 선택해야하기 때문에 MSAccess 용 영구 DSN을 만들 수 없습니다. SQL 서버용 영구 DSN을 만들 수 있습니다.

MSAccess 파일을 선택할 때 동적으로 DSN을 만들고 PowerBuilder를 사용하여 모든 테이블 데이터를 SQL에 푸시하도록 도와주세요.

가능한 경우 전체 PowerBuilder 코드를 제공하여 문제를 완료하십시오.

답변

0
  • 레지스트리
  • 수출 .reg 파일
  • 읽기에 레지스트리 구문의 항목을 찾습니다 ODBC 관리자
  • 에서 수동으로 DSN을 만들고 PB
  • 에 동적으로 .reg 파일을 편집
  • 우레탄에 PB의 RegistrySet (key, valuename, valuetype, value) 당신이 당신의 DSN을 설정했으면

, 거기에 많은 옵션을 사용하여 다시 레지스트리에 기록 sh 데이터를 한 데이터베이스에서 다른 데이터베이스로 가져옵니다.

PB에는 두 개의 transaction 개체가 필요하며 각 개체는 자체 데이터베이스를 가리 킵니다. 그런 다음 Data Pipeline 개체를 사용하여 실제 데이터 전송을 관리 할 수 ​​있습니다.

4

Access에서는 누군가 구성해야 할 일이 적어지기 때문에 사용자가 망칠 수있는 일이 적기 때문에 DSN을 전혀 사용하지 말 것을 강력히 제안합니다. Using DSN-Less Connections PowerBuilder에서도 비슷한 옵션이 있는지 확인해야합니다.

+0

//// Profile access databases accdb format SQLCA.DBMS = "OLE DB" SQLCA.AutoCommit = False SQLCA.DBParm = "PROVIDER='Microsoft.ACE.OLEDB.12.0',DATASOURCE='C:\databasename.accdb',DelimitIdentifier='No',CommitOnDisconnect='No'" Connect using SQLCA; If SQLCA.SQLCode = 0 Then Open (w_rsre_frame) else MessageBox ("Cannot Connect to Database", SQLCA.SQLErrText) End If 

또는 우리는 DSN 일반적으로 ODBC 관리자 도구 및 "단지 주변에 엉망"를 발견 사용자에 의해 망쳐지고 보관 정확하게 때문에 DSN을 사용 중지. 동적으로 생성 된 연결 문자열을 사용하여 일반 ODBC 연결을 수행했습니다. www.connectionstrings.com을 참조하거나 도움을 받으십시오. – DaveE

1

Tony가 참조하는 DSNLess 연결을 수행하려고합니다. PBDJ에서 예제를 보여주고 Sybase의 CodeXchange에 코드 샘플이 있습니다.

0

이 코드를 사용하고 있습니다. 시도해보십시오!

//// Profile access databases mdb format 
transaction aTrx 
long resu 
string database 
database = "C:\databasename.mdb" 
aTrx = create transaction 
aTrx.DBMS = "OLE DB" 
aTrx.AutoCommit = True 
aTrx.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='"+database+"',PBMaxBlobSize=100000,StaticBind='No',PBNoCatalog='YES'" 
connect using aTrx ; 
if atrx.sqldbcode = 0 then 
    messagebox("","Connection success to database") 
else 
    messagebox("Error code: "+string(atrx.sqlcode),atrx.sqlerrtext+ " DB Code Error: "+string(atrx.sqldbcode)) 
end if 
// do stuff... 
destroy atrx