我使用以下代码在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从创建数据库的程序或其他程序使用此数据库时,我收到消息:
运行时错误' -2147467259(80004005)':致命:数据库" db1"不 不存在
如果我使用pgadmin创建具有所有相同属性的相同数据库,那么我就不会这样做 消息,可以使用外部程序使用数据库。
有人可以解释我做错了什么吗? 谢谢。
答案 0 :(得分:0)
我做错了是因为我正在创建一个名为
的数据库" DB1"
而不是
" DB1"
(名称中有一个领先的空间)。
代码中的这一行是错误的:
s1 = "CREATE DATABASE "" " & sDB_Name & """"
应该是
s1 = "CREATE DATABASE """ & sDB_Name & """"