标签: progress-db

unixodbc驱动程序管理器无法在安装时打开指定的库

我正在使用ArchLinux,我正在尝试安装OpenEdge进度驱动程序,以便我可以通过PHP访问它.我已经安装了unixodbc软件包和驱动程序,但是当我通过isql或PHP测试连接时,我得到了同样的错误......

# isql -3 SUBS2A
[01000][unixODBC][Driver Manager]Can't open lib '/usr/dlc/odbc/lib/pgoe1023.so' : file not found
[ISQL]ERROR: Could not SQLConnect
Run Code Online (Sandbox Code Playgroud)

混乱的事情是"/usr/dlc/odbc/lib/pgoe1023.so"目前存在,我甚至从"/ usr/dlc"中对它进行了符号链接.

以下是我的.ini文件......

ODBC.INI

[SUBS2A]
Description = ODBC Driver for Progress
Driver = /usr/dlc/odbc/lib/pgoe1023.so
FileUsage = 1
Run Code Online (Sandbox Code Playgroud)

odbcinst.ini(我删除了一些凭据,因为它无关紧要)

[ODBC-test]
Description = SUBS2A
Driver = SUBS2A
Server = 192.168.1.2
Port = 4000
APILevel=1
ConnectFunctions=YYN
CPTimeout=60
DriverODBCVer=03.60
FileUsage=0
SQLLevel=0
UsageCount=1
ArraySize=50
DefaultLongDataBuffLen=2048
DefaultIsolationLevel= READ COMMITTED
StaticCursorLongColBuffLen=4096
Run Code Online (Sandbox Code Playgroud)

编辑添加更多信息......

他们似乎都是32位,除了我不知道我在做什么.

[root@Crux etc]# file /usr/bin/isql
/usr/bin/isql: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically …
Run Code Online (Sandbox Code Playgroud)

odbc unixodbc progress-db openedge archlinux

8
推荐指数
1
解决办法
3万
查看次数

什么是与SQL Management Studio等效的Progress?

我有一个我需要连接的进度数据库.它们与SQL Server Management Studio相同的是什么?

服务器似乎是Progress OpenEdge 10.1

progress-db

7
推荐指数
1
解决办法
4673
查看次数

如何从Progress数据库中获取ROWID

我有一个Progress数据库,我正在执行ETL.我正在读取的其中一个表没有唯一的密钥,因此我需要访问ROWID以便能够唯一地标识该行.访问正在进行的ROWID的语法是什么?

我知道使用ROWID进行行识别存在问题,但这就是我现在所拥有的.

database progress-4gl progress-db

4
推荐指数
2
解决办法
5932
查看次数

将 OpenEdge v10 数据库恢复到 v11

我是 OpenEdge 数据库平台的新手,到目前为止我真的很挣扎。我有一位客户给了我他的数据库备份(单个.bak文件),该备份取自 OpenEdge v10。我只有一个 OpenEdge v11 数据库服务器。

我们不拥有 OpenEdge 或其他任何东西,因此据我所知,获得 v10 可能是不可能的。我们的客户只是希望我在数据库中查找一下,看看能找到什么,所以我不准备投入太多资金。

当我尝试进行恢复时,我得到:

C:\Progress\OpenEdge\bin>prorest.bat E:\Progress\ServicePro\ServicePro "E:\Progress\svcpro_l.bak"
OpenEdge Release 11.3 as of Wed Jul 17 16:46:26 EDT 2013
Start of extending target DB to needed size... (9432)
Version number mismatch, backup has 4246, database has 4269. (16691)
Restore failed. (1618)
!!! ERROR - Database restore utility FAILED !!! (8564)
Run Code Online (Sandbox Code Playgroud)

我已尽可能多地搜索并找到了这篇知识库文章,但它似乎不适用于恢复数据库,而是适用于恢复复制的数据库。

如何恢复从 v10 到 v11 的 Progress OpenEdge 数据库备份?

progress-db database-restore openedge

4
推荐指数
1
解决办法
3089
查看次数

如何使用 Dapper 连接到 ProgressDB 数据提供程序?

请阅读答案的评论,以更全面地了解问题是/曾经是什么

首先,我通读了很多与此相关的其他 SO 问题,但仍然无法在基本设置中使用它。这是我已经阅读的相关问题:

使用 OleDb 在 Dapper 中传递查询参数

编辑:下面的故障排除有点误导。唯一出错的是 Github 示例中的查询语法在使用 ProgressDB OpenEdge 驱动程序时无效。

该问题的答案以及记录在案的 Git 示例中给出的示例的问题在于,没有使用真正的 ODBC 对象,而是使用了一个OleDbConnection对象。这会导致我尝试使用 Dapper 的场景出现问题。我的场景的一些背景和限制:

  • 我无法更改 DB 技术,我们正在连接到 Progress DB。连接到数据库的连接字符串: connectionString="PROVIDER= MSDASQL ;DRIVER={Progress OpenEdge 10.2A Driver};HOST=...;PORT=...;DB=mfgsys;UID=...;PWD= ...;DIL=READ UNCOMMITTED” 注意提供者:MSDASQL
  • 根据 MSDN,https://msdn.microsoft.com/en-us/library/a6cd7c08%28v=vs.110%29.aspx - “ OLE DB 的 .NET Framework 数据提供程序不适用于 OLE DB 提供程序对于 ODBC (MSDASQL)。要使用 ADO.NET 访问 ODBC 数据源,请使用 .NET Framework Data Provider for ODBC。
  • 当我尝试将OdbcConnection对象与 Dapper一起使用时,出现以下错误:“ System.Data.Odbc.OdbcException : ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Syntax error …

c# progress-db openedge dapper

4
推荐指数
1
解决办法
3398
查看次数

在多个条件下写案例的更好方法

我已经编写了以下查询,以帮助我将数据细分为不同的单元格。这有200多个条件,所以我只提供了一个小样本。对于我来说,有没有一种更好的方法可以编写此语句,因为从研究进展来看,我最多只能编写50条CASE WHEN....THEN语句。

SELECT    

Company_0.CompanyID 
    ,Company_0.CoaCompanyName
    ,(CASE 
    WHEN Company_0.CompanyID = 7942127 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7950986 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7955733 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7955922 THEN 'BLUE'
    WHEN Company_0.CompanyID = 7956194 THEN 'RED'
    WHEN Company_0.CompanyID = 9166261 THEN 'RED'
    WHEN Company_0.CompanyID = 9167003 THEN 'YELLOW'
    WHEN Company_0.CompanyID = 9167015 THEN 'YELLOW
ELSE NULL
END' AS 'CELL'
Run Code Online (Sandbox Code Playgroud)

返回结果后,它应如下所示:

ID              COMPANY NAME          CELL
-------------------------------------------------------
7942127             A                 BLUE
7950986             B                 BLUE
7955733             C                 BLUE
7955922             D                 BLUE
7956194 …
Run Code Online (Sandbox Code Playgroud)

sql excel progress-db openedge case-when

4
推荐指数
1
解决办法
91
查看次数

基于其他行排除行(SQL)

说我有这样的查询:

SELECT *
FROM TABLE
Run Code Online (Sandbox Code Playgroud)

它返回:

TABLE
ID | DATA | VAL
===============
01 | ABCD | 1
01 | DEFG | 2
02 | FGHI | 3
02 | HIJK | 2
03 | JKLM | 3
03 | LMNO | 4
04 | NOPQ | 0
04 | PQRS | 1
Run Code Online (Sandbox Code Playgroud)

目前我有一个查询,试图找到这样的好值,但它是有缺陷的,因为包含其他行中的VAL不好的ID,这不是我想要的.

SELECT *
FROM TABLE
WHERE TABLE.VAL IN ("1","2","3")
Run Code Online (Sandbox Code Playgroud)

将返回此(缺少LMNO和PQRS):

TABLE
ID | DATA | VAL
===============
01 | ABCD | 1
01 | DEFG | 2 …
Run Code Online (Sandbox Code Playgroud)

sql progress-db

3
推荐指数
1
解决办法
5176
查看次数

具有NULL值的CASE表达式

我正在努力了解如何在进度案例表达式中检查空值。我想查看是否存在一列并使用它,如果不使用后备列。例如,威廉的名字将由Bill在fn.special-char中覆盖。

我有以下查询:

SELECT  
"PUB"."NAME"."LAST-NAME" as LastName,
   CASE fn."SPECIAL-CHAR"
     WHEN   is null  THEN "PUB"."NAME"."FIRST-NAME"
     ELSE   fn."SPECIAL-CHAR"
END as FirstName

FROM "PUB"."NAME"  
LEFT OUTER JOIN "PUB"."DAT-DATA" fn on "PUB"."NAME"."NAME-ID" = fn."DAT-SRC-ID" and 11 = fn."FLD-FIELD-ID" 
Run Code Online (Sandbox Code Playgroud)

当我运行查询时,我得到:

ORBC Progress OpenEdge Wire Protocol驱动程序] [OPENEDGE]语法错误SQL语句等于或大约为“,然后为” PUB“。” NAME“。” FIRST-“(10713)

如果我选择*,我会看到一切。它只是不喜欢空白部分。我还可以将when null更改为when'bob',并且它可以工作。

在进度数据库查询中使用空值是否需要做其他事情?

sql select case progress-db openedge

3
推荐指数
1
解决办法
7905
查看次数

用于Progress DB SQL的LIKE运算符

我正在尝试在Progress SQL中做这样的事情(这不是POSTGRES!)

SELECT
    CASE WHEN code LIKE '%foo%' THEN 'Y' ELSE 'N' END as foo
FROM
    bar
Run Code Online (Sandbox Code Playgroud)

但是Progress不支持LIKE运算符.INSTR看起来它可能会完成这项工作,但它是一个Progress扩展,我正在使用的数据库不支持.是否有另一种使用标准ODBC函数实现此目的的方法?

谢谢

sql progress-db case-statement openedge sql-like

2
推荐指数
1
解决办法
1万
查看次数

从PROGRESS迁移到SQL Server 2008 - 如何?

我面临着一个我不知道如何继续的任务:将一个120 GB的数据库从PROGRESS迁移到SQL Server 2008.

我坦率地说,从来没有听说过PROGRESS,也不能真正了解他们的网站......我所拥有的是一个restore包含128个文件的文件夹,dbqsXXX其中XXX从1到128,每个文件为1 GB在尺寸方面.

我不知道PROGRESS,我没有任何PROGRESS服务器可用 - 有没有希望我可以从这些文件中获取数据到SQL Server?

另外:我试图找到ODBC驱动程序,我找到一个(称为SequeLink ODBC 4.51),但我无法安装它,因为它不喜欢我的Win7 x64机器:-(并且在PROGRESS网站本身,我似乎无法找到任何用于下载的ODBC驱动程序 - 只需要花费$$$$$$的东西

那么 - 我的选择是什么?

  • 是否有"PROGRESS Express"或"Free"或"Developer"版本可用?
  • 我能以其他方式访问"恢复"目录中的那些dbqs文件吗?它们似乎至少部分是二进制的 - 没有CSV或XML或类似的......
  • 我可以找到一个可用的ODBC或OleDB驱动程序,它可以在我的Win7 x64机器上运行,并允许我创建一个到PROGRESS db的链接服务器?(前一段时间与MySQL一起工作正常)
  • 我可以(或我的客户)以某种方式将PROGRESS的结构和数据转储到另一种更平易近人的格式,如MySQL或PostgreSQL或其他什么?

任何提示,技巧,网站,网络广播都是最受欢迎的!

data-migration database-migration progress-db openedge sql-server-2008

2
推荐指数
1
解决办法
3705
查看次数