(这个问题最初是几个月前在另一个论坛上发布的,没有得到任何答案......这些时候没有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' 不能插入到 uniqueindentifier/primary key field 中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 插入”、“uniqueIdentifier is Chinese to RoR”或“RoR does '不适用于 MS SQL Server'...
任何想法?