오케이 저는 몇 시간 동안이 작업을 시도했지만 제대로 작동하지 않습니다. 나는 데이터베이스를 열려고 간단한 펄 스크립트가 : 명령 줄에서 실행할 때IIS에서 SQLite 데이터베이스에 액세스 할 수 없습니다.
my $db;
my $cgi = new CGI;
$db = DBI->connect("dbi:SQLite:dbname=test.db") or do
{
print $cgi->header("text/plain", "500 Internal Server Error");
print "Can't connect to database.";
};
스크립트는 잘 작동을하지만, IIS 작업을 거부합니다. 나는 스크립트와 데이터베이스를 모두 C : \ inetpub \ wwwroot \ test에 넣고 전체 테스트 디렉토리 보안을 Everyone에 대한 모든 권한으로 변경했습니다. 여전히 작동하지 않습니다. 파일에 액세스하는 방법을 모르겠습니다.
현재 작업 디렉토리가'C : \ inetpub \ wwwroot \ test'인지 확인 했습니까? 'connect'에서 파일의 경로를 완전히 지정하는 것은 어떨까요? 'dbi : SQLite : dbname = : memory :'작동합니까? '$ DBI :: errstr'에 무엇이 있습니까? DBD :: SQLite가 설치되어 있습니까? – Borodin
errstr = "데이터베이스 파일을 열 수 없습니다", 예 SQLite가 설치되었으므로 명령 줄에서 스크립트를 실행할 수 있습니다. 예, 동일한 동작으로 전체 경로를 변경하려고했습니다. using : memory : 연결선을 작동시킨다.하지만 준비하려고하면 "메서드를 호출 할 수 없다"는 "정의되지 않은 값으로 실행한다" – Dendory
문을 준비하고 'execute'를 호출하면 실패하는 것입니까? '문 핸들에서 실패하면 실패합니까? 이것은 SQL 문법이 잘못되었음을 의미하지만 아마도이 문제와 관련이 없습니다. 'test.db'가 이미 존재할 것으로 기대하십니까? ''$ fh ',' ','test.db '또는 die $!'를 열면 어떻게됩니까? – Borodin