(這個問題最初是在幾個月前發佈在另一個論壇上,沒有得到任何答案......在這些時候沒有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