我在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。
我尝试使用convert
和cast
。
fyi可以通过编辑源来实现。
答案 0 :(得分:0)
This post可能会有所帮助。
简而言之:
取决于所使用的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.
该帖子详细解释了它。