数据库在 pgadmin 中可见,但对于其他程序不存在
Database visible in pgadmin but does not exist for other program
我使用以下代码在 postgresql 中创建了一个数据库。
Dim s1 As String
s1 = "Provider=MSDASQL;Driver={PostgreSQL ANSI};SERVER=localhost;DATABASE=postgres;UID=username;PWD=pwd;CONNSETTINGS=SET Datestyle TO 'DMY'%3b;BOOLSASCHAR=0;TEXTASLONGVARCHAR=1;TrueIsMinus1=1;"
Dim c1 As New ADODB.Connection
c1.Open s1
Dim sDB_Name As String
sDB_Name = "db1"
s1 = "CREATE DATABASE "" " & sDB_Name & """"
s1 = s1 & " With OWNER = postgres "
s1 = s1 & " TEMPLATE = template0 "
s1 = s1 & " ENCODING = 'WIN1252' "
s1 = s1 & " TABLESPACE = pg_default "
s1 = s1 & " LC_COLLATE = 'English_United States.1252' "
s1 = s1 & " LC_CTYPE = 'English_United States.1252' "
s1 = s1 & " CONNECTION LIMIT = -1; "
c1.Execute s1
MsgBox "done"
Unload Me
在使用 pgadmin 我可以看到这个新数据库并与之交互的情况下,它成功地工作了。
但是当我尝试从创建数据库的程序或其他程序通过 ADO 使用此数据库时,我收到消息:
Run-time error '-2147467259 (80004005)': FATAL: database "db1" does
not exist
如果我使用 pgadmin 创建具有所有相同属性的相同数据库,那么我不会得到这个
消息并可以使用外部程序处理数据库。
有人可以解释一下我做错了什么吗?
谢谢。
我做错的是我创建了一个名为
的数据库
" db1"
而不是
"db1"
(名称中有前导 space)。
代码中的这一行是错误的:
s1 = "CREATE DATABASE "" " & sDB_Name & """"
应该是
s1 = "CREATE DATABASE """ & sDB_Name & """"
我使用以下代码在 postgresql 中创建了一个数据库。
Dim s1 As String
s1 = "Provider=MSDASQL;Driver={PostgreSQL ANSI};SERVER=localhost;DATABASE=postgres;UID=username;PWD=pwd;CONNSETTINGS=SET Datestyle TO 'DMY'%3b;BOOLSASCHAR=0;TEXTASLONGVARCHAR=1;TrueIsMinus1=1;"
Dim c1 As New ADODB.Connection
c1.Open s1
Dim sDB_Name As String
sDB_Name = "db1"
s1 = "CREATE DATABASE "" " & sDB_Name & """"
s1 = s1 & " With OWNER = postgres "
s1 = s1 & " TEMPLATE = template0 "
s1 = s1 & " ENCODING = 'WIN1252' "
s1 = s1 & " TABLESPACE = pg_default "
s1 = s1 & " LC_COLLATE = 'English_United States.1252' "
s1 = s1 & " LC_CTYPE = 'English_United States.1252' "
s1 = s1 & " CONNECTION LIMIT = -1; "
c1.Execute s1
MsgBox "done"
Unload Me
在使用 pgadmin 我可以看到这个新数据库并与之交互的情况下,它成功地工作了。
但是当我尝试从创建数据库的程序或其他程序通过 ADO 使用此数据库时,我收到消息:
Run-time error '-2147467259 (80004005)': FATAL: database "db1" does not exist
如果我使用 pgadmin 创建具有所有相同属性的相同数据库,那么我不会得到这个 消息并可以使用外部程序处理数据库。
有人可以解释一下我做错了什么吗? 谢谢。
我做错的是我创建了一个名为
的数据库" db1"
而不是
"db1"
(名称中有前导 space)。
代码中的这一行是错误的:
s1 = "CREATE DATABASE "" " & sDB_Name & """"
应该是
s1 = "CREATE DATABASE """ & sDB_Name & """"