(这个问题最初是在几个月前发布在另一个论坛上,没有得到任何答案......在这些时候没有SO!)Ruby on Rails和MSSQL Server:尝试插入newid()默认值的行
我在RoR的第一步。我借鉴了其中一本关于Ruby和Ruby On Rails的书。示例在MySQL上正确运行,因此我决定将它们重写为MS-SQL作为一个良好的练习(并且MS-SQL是我们的标准数据库)..并且它变成了一个噩梦:
我有这张表与2个字段
Tbl_People
----------
id_People primary key, newid() default value,
namePeople string
我有一个ODBC连接到数据库。我可以列出记录,但是......我无法在表格中插入任何内容。由红宝石产生的INSERT串如下:
INSERT INTO Tbl_People (id_People, namePeople) VALUES('newid','GRONDIER, Philippe')
并且将被拒绝,因为字符串“newid的”不能在uniqueindentifier /主键字段id_People
插入。从逻辑上讲,返回的错误是:
DBI::DatabaseError: 37000 (8169) [Microsoft] [ODBC SQL Server Driver][SQL Server]Conversion failed when converting from a character string to uniqueidentifier
这似乎是如此显然是一个重要和基本的问题,我觉得我错过了一些东西通常用粗体每个RoR的培训文件,如“不要试图通过回报率的INSERT ','uniqueIdentifier是RoR的中文',或'RoR不能与MS SQL Server一起使用'...
任何想法?
的INSERT字符串自动生成的红宝石,而不是我。 RUBY生成字符串的方式显然不正确。 – 2009-01-23 10:01:50