我想知道是否有人可以帮我解决一个让我拉掉头发剩余的问题......
我目前正在开展一个项目,要求我与Unidata数据库交谈.PHP没有本机驱动程序来访问这种类型的数据库,但是,经过一些谷歌搜索,我发现以下内容:
https://u2devzone.rocketsoftware.com/accelerate/articles/u2-pdo-driver/u2-pdo-driver.
我有U2 Intercall标头和库,我想我正确地包含它们.但是,扩展编译但未通过测试,因为它出错
pdo_u2.so: undefined symbol: ic_universe_session in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
这告诉我,它与图书馆没有联系.当我编辑makefile并手动指定应该包含库时,它会出错
relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/home/kaigoh/Downloads/intcall/lib/libuvic.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [pdo_u2.la] Error 1
Run Code Online (Sandbox Code Playgroud)
我试过强制makefile中的-fPIC开关,但是我得到了同样的错误.
我根本不了解编译自定义PHP扩展以帮助自己,我希望这里有一位大师可以指出我正确的方向!
更新:这使用32位Linux安装完美编译,所以不知道为什么它失败了64位安装...
我正在尝试将XS编译成perl [ed(ikegami):也就是说他正在使用:: MakeMaker make perl
来创建一个perl
静态链接的C供应商库]但是当我这样做时,新版本的perl不支持动态加载模块.每当我尝试运行类似use Socket
(或任何其他模块)的perl代码时,我得到:
Can't load module Socket, dynamic loading not available in this perl.
Run Code Online (Sandbox Code Playgroud)
是否有编译器/链接器开关我设置不正确或什么?所有这些都是在1998年和2004年在另一个盒子(PA-RISC上的hpux旧)上编译的,但是我们正在转向一个新的盒子(hpux11 itanium)而且我正在撞墙.
这是我的Makefile.PL:
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
'NAME' => 'Udtutil',
'VERSION_FROM' => 'Udtutil.pm', # finds $VERSION
'LIBS' => '-L/usr/ud/PFUSION/Udtutil -L/usr/ud/lib -lapidummy ' .
'-lshare -ludsql -ludmach -lbasic ' .
'-lperf -lret1 -lides -lpipe -lfunc -lndx -lrep -lshm ' .
'-lmglm …
Run Code Online (Sandbox Code Playgroud) 我最近接触了UniVerse的专有后代.有谁知道我可以在哪里获得一个好的教程或了解其更受欢迎的父母的句法怪癖?我无法弄清楚如何获得表格列表.浏览我的方式很困难,我没有看到任何手册页.
需要特别注意给予SQL Reference
,SQL Administration for DBAs
和User Reference
.在这两个页面的底部还有一个链接到一个包含所有文档的zip.还有一个关于Universe 10.3的Rocket Software(需要个人信息)的演示,但它只适用于RHEL.并且,即使它是静态链接的,它使用Ubuntu 8.10为我提供了段错误.
这些链接是Rocket Software(Uni*产品线的当前所有者)的官方链接
这是一个早于Rocket Software收购产品线的产品:
我有一个项目需要一些 DevOps TLC,所以我终于构建了我的安装脚本。这最终将是一个可以通过 pip 在本地安装的包,但可能不会在 PyPI 中结束。
它依赖于一个名为u2py
. 正是这个包,为 U2 数据库操作创建的,而不是这个包,为了……别的东西。我想要的只有第 3 方供应商 (Rocket) 才安装,我不想要的是 PyPI。
在这种情况下,我的包的预期行为应该是什么?我将在我的自述文件中包含一个关于此的简介,但这是否足够?
我曾想过抛出异常来确定何时存在错误的包,但这让我觉得很奇怪。似乎最pythonic的事情是不要将它添加到我的安装脚本中,并盲目地假设import u2py
我可以使用的模块的结果。如果它像鸭子一样嘎嘎叫,像鸭子一样解析DynArray
s,像鸭子一样call()
s SUBROUTINE
,那么它就是一只鸭子,对吧?否则,如果出现错误,用户只会去实际阅读文档。
我看过一个classifiers
,但不确定它们是否适用于此。
我无法从u2.net工具箱访问UniData数据。我能够正常连接-已使用“测试连接工具”测试了连接,并且在代码中,两个连接都能正常工作。我的问题是当我尝试使用示例代码填充数据集时:出现此错误:
[U2][UCINET][UNIDATA]:You have no privilege on file THENAME
Run Code Online (Sandbox Code Playgroud)
这是代码:
U2Connection con = new U2Connection();
try
{
U2ConnectionStringBuilder conn_str = new U2ConnectionStringBuilder();
conn_str.UserID = "id";
conn_str.Password = "pwd";
conn_str.Server = "srv2";
conn_str.Database = "DB.XXX";
conn_str.ServerType = "UNIDATA";
conn_str.RpcServiceType = "udserver";
con.ConnectionString = conn_str.ToString();
con.Open();
DataTable schema = con.GetSchema();
U2DataAdapter da = new U2DataAdapter("SELECT * FROM THENAME ", con);
DataSet ds = new DataSet();
da.Fill(ds);
}
catch (Exception ex)
{
string lStr = ex.Message;
}
finally
{
con.Close();
Run Code Online (Sandbox Code Playgroud)
还有1个注意事项,我有一个ODBC连接设置。通过ODBC,我可以在SQL Server链接服务器内部使用相同的凭据来成功访问相同的查询。任何想法,将不胜感激。
我正在创建一个需要数字签名(MD5哈希)的顺序文件.在创建顺序文件的同时,我也在创建一个具有相同数据的动态数组.如果我在顺序文件和动态数组上执行MD5哈希,我可以期望结果相同或不同吗?
我在使用U2 Toolkit的一些基本概念时遇到了一些困难(我之前的版本已经非常成功!).
首先,我必须使用U2.Data.Client.UO添加; 为了引用UniSession或UniFile.这可能只是普遍的无知,但是没有'使用U2.Data.Client'意味着我也想要它下面的.UO东西?!?
第二 - 通过U2Connection的Open()或UniSession的OpenSession()连接之间的区别(概念上)是什么?他们每个人都提供不同的工作环境吗?
最后 - 虽然文档和Rajan的各篇文章中提供的示例都很有用,但我想要一些更实用的东西:如何简单地"这里是如何读取和写入Unidata文件中的特定记录"?
谢谢!
我需要了解MATREAD和READ之间的区别?并请提供一个简单的例子,说明在哪里以及如何使用它.
我们使用一个名为Universe的IBM数据库,它将所有用户ID,密码和配置文件信息保存在名为USERINFO的表中.
我可以使用成员资格提供程序连接到此数据库并对用户进行身份验证吗?
数据库访问实际上是通过Web服务,因为我们没有直接连接到数据库.
我们有一个名为GetUserInfo的Web服务方法,它接受username的参数.该方法将返回密码和配置文件信息.
在UniVerse中,除非@
文件字典中的短语设置为所有表列,否则无法查询文件的所有列.如果不是,您如何在表中查询其所有列的值?
所以我可以使用以下方法获取总列列表(列名和显示名称):
LIST DICT file NAME
Run Code Online (Sandbox Code Playgroud)
这将返回所有列及其显示名称的列表.然后,我如何查询表中的所有列?
LIST file
Run Code Online (Sandbox Code Playgroud)
只会查询它LIST file @id
(@id是@中唯一的东西).
更新
我发现了一个博客 - 一个活生生的呼吸者,他使用的是比我年长的UniVerse版本!在那里他抱怨同样的事情,但是说没有任何解决方案可以@
用所有列进行更新,请上帝有人证明他(Dan Watts)错了.
如果您有200列表并且希望SELECT*返回所有200列,该怎么办?抱歉,您必须在"@"记录中输入所有200个列名称.如果您添加,删除或重命名列,则必须记住编辑该"@"记录.我感觉到你的痛苦!这种繁琐的方法可以追溯到UniVerse的ODBC驱动程序,我想他们现在不能在不破坏大量应用程序的情况下改变它.您可以在UniVerse ODBC指南中找到不可思议的IBM-ese中描述的详细信息.
我对UniData和UniVerse数据库有一些(有限的)经验,现在想通过.NET框架与它们一起工作.现在看来,与他们合作的方式是通过Rocket Software的U2 Toolkit for .NET.
由于我将访问其模式我不会事先知道的数据库,我需要知道如何查询数据库而不仅仅是数据(将在稍后出现),而是有关数据库本身的信息,例如现有的名称表及其模式.
看起来Rocket(或者可能是以前拥有U2技术的IBM)在其某些实用程序中内置了一些功能,但我真的需要能够以编程方式执行此操作.
有任何想法吗?
我正在尝试将数据从多值数据库(Unidata)导出到MySQL.让我们说我的源数据是一个人的身份证号码,他们的名字和他们所居住的所有状态.州字段是一个多值字段,我正在导出它们,以便该字段中的不同值由一个分隔. 〜.样本提取物看起来像:
"1234","Sally","NY~NJ~CT"
"1235","Dave","ME~MA~FL"
"3245","Fred","UT~CA"
"2344","Sue","OR"
Run Code Online (Sandbox Code Playgroud)
我已将此数据加载到临时表中
Table:staging
Column 1: personId
Column 2: name
Column 3: states
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用一个过程将这些数据分成两个表:一个人员表和一个状态表.一个人可以在州表中有许多条目:
Table 1: persons
Column 1: id
Column 2: name
Table 2: states
Column 1: personId
Column 2: state
Run Code Online (Sandbox Code Playgroud)
我的过程从临时表中获取数据并将其转储到表1就好了.但是,我有点迷失如何分割数据并将其发送到表2.莎莉需要在状态表(NY,NJ,CT)中有三个条目,Dave会有3个,Fred会有2个和苏将有1(或).有关如何实现这一目标的任何想法?