用R连接4D数据库

时间:2014-03-11 17:19:38

标签: r matlab connection-string 4d-database

我认为StackOverflow是提出这个问题的最佳QA。

我想连接一个4D数据库(请不要问为什么4D,这已经足够痛苦了)必须使用数学工具如R(或Matlab甚至是C ++或.NET手写客户端)但我可以弄清楚连接字符串!

我已经安装了4D ODBC驱动程序,编辑了我的ODBC源,我可以通过MS Access连接它。我正在研究W7 Pro。我相信还有其他可能性,我想探索它们。

我检查了各种连接字符串数据库,但4D没有连接字符串(我不会问自己为什么)。同时我会写信给4D客户服务,但我相信你们中的一些人知道关键或者提示解决这个问题。

2 个答案:

答案 0 :(得分:2)

白天我是一个(有点不情愿)的4D开发人员,晚上是Python人。当我需要通过SQL连接到4D时,我使用pyodbc模块。我在Windows上工作,所以我的连接字符串只是我的dsn名字。

import pyodbc
conn = pyodbc.connect('DSN=4D_DSN_Name')

4D_DSN_Name是我用4D ODBC驱动程序创建的32位系统DSN。我没有对设置做任何特别的事情,只是确保我有正确的地址,端口,用户名和密码。其余的默认设置似乎都有效。

不是直接答案,但可能是线索或替代方案。

答案 1 :(得分:1)

将约书亚标记为答案,我将在此处添加一些细节......

就像使用DSN名称代表整个连接字符串一样简单。它在R:

中就是这样
> library(RODBC)
> dbhandle <- odbcDriverConnect('DSN=SomeObscureDatabase')
> dbhandle
RODBC Connection 1
Details:
  case=nochange
  DSN=SomeObscureDatabase
  DRIVER=4D v12 ODBC Driver
  Description=4D v12 SQL datasource.
  Server=x
  Port=19812
  UID=x
  PWD=x
  SSL=true
  PhysicalConnectionTimeout=30
  LoginTimeout=30
  QueryTimeout=240
  DefaultPageSize=100
  FavouriteImageFormats=*
  NetworkCacheSize=128
  CharsEncoding=UTF-8
  OpenQuery=false