这个问题几个月前在另一个论坛上发布过,没有得到任何答案……当时还没有SO!
我在RoR中迈出了第一步。我买了一本介绍Ruby和Ruby On Rails的书,示例在MySQL上正确运行,所以我决定将它们重写为MS-SQL作为一个好的练习(因为MS-SQL是我们的标准数据库)...但结果却变成了一个噩梦。
我有一张表格,含有2个字段。
Tbl_People
----------
id_People primary key, newid() default value,
namePeople string
我有一个ODBC连接到数据库。我可以列出记录,但是……我不能在表中插入任何内容。 Ruby生成的INSERT字符串如下:
INSERT INTO Tbl_People (id_People, namePeople) VALUES( newid , GRONDIER, Philippe )
由于字符串“newid”无法插入到唯一标识符/主键字段id_People
中,该请求将被拒绝。逻辑上,返回的错误是:
DBI::DatabaseError: 37000 (8169) [Microsoft] [ODBC SQL Server Driver][SQL Server]Conversion failed when converting from a character string to uniqueidentifier
这似乎是一个如此明显的大问题,以至于我感觉漏掉了通常在每个RoR培训文件中都以粗体字写出的东西,如不要尝试通过RoR进行INSERTs,uniqueIdentifier对RoR而言是中文,或者RoR与MS SQL Server不兼容...
有什么想法吗?