检索参数类型uniqueidentifier

时间:2013-01-28 12:18:20

标签: uniqueidentifier powerbuilder datawindow

我在SQL Anywhere中有以下表格:

CREATE TABLE "documents" (
    "doc_id" uniqueidentifier NOT NULL DEFAULT NEWID(*),
    "doc_description" varchar(50) NOT NULL,
    ...
    PRIMARY KEY("doc_id")
)

我创建了一个Datawindow。

(SQL声明:

SELECT
"documents"."doc_id",      
"documents"."doc_description"
FROM "documents"   
WHERE "documents"."doc_id" = :ruid_doc )

我添加了ruid_doc作为检索参数,并输入了type = string。

当我尝试保存时,出现以下错误:

  

SQLSTATE = 07006   [Sybase] [ODBC驱动程序]无法将0转换为uniqueidentifier。

我尝试使用convertcast

fyi可以通过编辑源来实现。

1 个答案:

答案 0 :(得分:0)

描述如何在数据窗口中使用自动增量列的

This post可能会有所帮助。

简而言之:

  • 在DW中,您将该列声明为数字
  • 在DW的更新属性中,为“标识列”
  • 选择正确的列
  • 取决于所使用的DBMS,您需要在PBODBxxx.ini(xxx是版本号)中告知插入后如何检索标识列。由于您似乎使用的是Sybase驱动程序,因此可以

    [Sybase SQL Server]
    PBSyntax='SYBASE_SYNTAX'
    

    [SYBASE_SYNTAX]
    GetIdentity='Select @@identity'
    ; GetIdentity='Select max(IDENTCOL) from &TableName'
    ; Alternative technique if table has insert trigger associated with it.
    

该帖子详细解释了它。