- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了在我的 MacOS X 环境中安装 Virtuoso,我使用了 brew 端口,即:
brew install virtuoso
通过这样做,它会自动安装一些 ODBC/iODBC 驱动程序,这些驱动程序不能被任何其他 unixodbc 安装程序覆盖。特别是如果我尝试链接这样的库:
$ brew link unixodbc
Linking /usr/local/Cellar/unixodbc/2.3.4...
Error: Could not symlink bin/isql
Target /usr/local/bin/isql
is a symlink belonging to virtuoso. You can unlink it:
brew unlink virtuoso
To force the link and overwrite all conflicting files:
brew link --overwrite unixodbc
To list all files that would be deleted:
brew link --overwrite --dry-run unixodbc
顺便说一句,我不想取消链接这个版本。所以我尝试从头开始编译 Redland 并从 GitHub 下载它。特别是,我使用了两种可能的配置:
env PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --with-virtuoso --with-odbc=/usr/local/Cellar/virtuoso/7.2.4.2
env PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure --with-virtuoso --with-iodbc=/usr/local/Cellar/virtuoso/7.2.4.2
在我的项目中手动添加 rdf_hash_internal.h
和 rdf_heuristics.h
之后,一切都进行得很顺利,并且所有内容都得到了编译和链接。在我的 C++ 应用程序中,我尝试使用以下代码访问数据库:
world = librdf_new_world();
librdf_world_open(world);
storage = librdf_new_storage(world,"virtuoso",graphName.c_str(),"dsn='Local Virtuoso',user='dba',password='dba'");
model = librdf_new_model(world,storage,NULL);
context_node = librdf_new_node_from_uri_string(world,(const unsigned char*)defaultContext.c_str());
/* librdf_model_transaction_commit(this->super->model) */
librdf_model_size(super->model)
无论我是否禁用事务,无论如何我都会在“rdf_storage_virtuoso.c”的第 941 行收到以下错误:
rc = SQLDriverConnect(connection->hdbc, 0,(UCHAR *) context->conn_str,
SQL_NTS, context->outdsn,
LIBRDF_VIRTUOSO_CONTEXT_DSN_SIZE,
&buflen, SQL_DRIVER_COMPLETE);
因此,我认为在 ODBC/iODBC 级别存在连接错误。顺便说一下,我可以使用以下命令连接到 virtuoso:
$ isql localhost:1111 dba dba
Connected to OpenLink Virtuoso
Driver: 07.20.3217 OpenLink Virtuoso ODBC Driver
OpenLink Interactive SQL (Virtuoso), version 0.9849b.
Type HELP; for help and EXIT; to exit.
SQL>
Virtuoso 有什么方法可以连接Redland 库和ODBC 库吗?提前致谢。
最佳答案
所有这些麻烦都是由于配置问题没有指南描述 AFIK(如果我错了请纠正我,我想找到有关 Virtuoso 和 Redland/librdf 的更多详细信息).因此,正如我在评论中所说,问题出在 ODBC 中,但原因是没有 Virtuoso 指南中没有提到如何配置他们的驱动程序。这是要走的路:
/Library/ODBC/odbc.ini
[ODBC Data Sources]
VOS = virtuoso-odbc
[VOS]
Driver = /usr/local/Cellar/virtuoso/7.2.4.2/lib/virtodbc.so
Description = Virtuoso Open-Source Edition
Address = localhost:1111
UserName = dba
User = dba
/Library/ODBC/odbcinst.ini
[ODBC Drivers]
virtuoso-odbc = Installed
[virtuoso-odbc]
Driver = /usr/local/Cellar/virtuoso/7.2.4.2/lib/virtodbc.so
因此,即使是通过 Redland 访问所需的配置参数也必须更改。
storage=librdf_new_storage(world, "virtuoso","db1","dsn='VOS',user='dba',password='dba'");
VOS 是 ODBC 中的配置定义。此外,具体的 ContextNode 指定要使用哪个命名图。
关于c++ - 在 MacOS X 环境下通过 Virtuoso 的 ODBC/iODBC 将 Redland 连接到 Virtuoso,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414756/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!