1
PowerShell 함수에서 Microsoft Access DB를 열고 싶습니다. 주 코드에 연결 변수를 저장하겠습니다. 할 수 없습니다 \ 임시 \ mydb.mdb
속성 'ConnectionString을'변수에 구성원이있는 전역 변수
오류가 데이터베이스 + C에 연결 :이 오류 메시지가
Function open_database($dbname) { # Open the database try { $global:conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=$dbname;Persist Security Info=False" $global:conn.Open() } catch { write-host "Error connecting to the database " + $dbname return $false } return $true } # M A I N $conn = New-Object System.Data.OleDb.OleDbConnection if (-Not (open_database("C:\temp\mydb.mdb"))) {exit}
:
이
코드입니다 이 객체에서 발견 될 수 있습니다. 속성이 존재하고 설정할 수 있는지 확인하십시오.
어떻게 수정합니까?
나는 PowerShell이 conn
과 global
을 연관 짓고 있으며 conn.ConnectionString
과는 관련이 없다고 생각합니다.
그러나 귀하의 질문에있는 코드는 그 오류를 제공하지 않습니다? 나는 편리한 데이터베이스를 가지고 있지 않지만 오류가 없으며 불만없이 실행된다. 그리고 주석에 테스트 코드를 넣을 수 있다면 - function test {$ global : c.x = 4}; $ c = @ {x = 2}; $ c; 테스트; $ c' 글로벌 속성에 접근하면 효과가 있습니다. – TessellatingHeckler
디버깅을 위해 모든 Try_Catch 구조를 생략 해 보겠습니다. 'Try' 블록의 맨 처음 _inner_을 사용하고 가능한 오류의 _full specification_을 보려면'return $ false'를 사용하십시오. '$ global : conn'이 예상대로 정의 되었습니까? '$ main'에있는'$ conn = ...'은 _script_ 범위에 정의되어 있습니다. OLEDB 공급자가 등록되어 있습니까? ... – JosefZ