0

我在 SQL Anywhere 中有下表:

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

我创建了一个数据窗口。

(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 转换为唯一标识符。

我曾尝试使用convertcast

仅供参考,可以通过编辑源来执行此操作。

4

1 回答 1

0

这篇描述如何在数据窗口中使用自动增量列的帖子可能会有所帮助。

简而言之:

  • 在 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.
    

这篇文章详细解释了它。

于 2013-01-28T13:33:56.090 回答