数据库在pgadmin中可见,但对于其他程序不存在

时间:2015-01-03 12:02:08

标签: postgresql vb6

我使用以下代码在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创建具有所有相同属性的相同数据库,那么我就不会这样做 消息,可以使用外部程序使用数据库。

有人可以解释我做错了什么吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

我做错了是因为我正在创建一个名为

的数据库
  

" DB1"

而不是

  

" DB1"

(名称中有一个领先的空间)。

代码中的这一行是错误的:

s1 = "CREATE DATABASE "" " & sDB_Name & """" 

应该是

s1 = "CREATE DATABASE """ & sDB_Name & """"