NOTE: The term, "DSN-less connection" is not accurate when using Pervasive.SQL relational access, since a DSN must be defined on the server using the Pervasive ODBC Engine Interface.
In the Example below TDATA System DSN Must exist on the server.
If InStr(1, tblDef.Connect, "ODBC") > 0 Then
'SQL Pervasive Database
strSQLConnectionString = GetSQLConnectionString()
'tblDef.Connect = strSQLConnectionString
tblDef.Connect = "ODBC;driver={Pervasive ODBC Client Interface};ServerName=10.1.0.16;ServerDSN=TDATA;" & ";TABLE=" & tblDef.Name
tblDef.RefreshLink
End If
More information is here
http://support.pervasive.com/t5/tkb/articleprintpage/tkb-id/Database_KnowledgeBase/article-id/804
Solution Notes
NOTE: The term, "DSN-less connection" is not accurate when using Pervasive.SQL relational access, since a DSN must be defined on the server using the Pervasive ODBC Engine Interface.
The following connection strings can be used to access Pervasive ODBC Engine DSNs programmatically:
1) Setup a DSN on the client machine using the Pervasive ODBC Client Interface. Connection String can be "DSN=myDSN;", assuming the client side DSN is named as myDSN.
2) Without setting up a DSN on the client machine:
Connection String can be "driver={Pervasive ODBC Client Interface};ServerName=myServer;ServerDSN=myDSN;" or
Connection String can be "driver={Pervasive ODBC Client Interface};ServerName=myServer;DBQ=dbName;"
NOTE: Here, myServer is the server name or IP address; myDSN is the server side DSN using the Pervasive ODBC Engine Interface; dbName is the database which is used to define the server side DSN