|
v7: Как получить bigint из SQL? |
☑ |
0
Lepochkin
17.10.11
✎
10:29
|
День добрый. Подключаюсь через ADO к скульной базе, делаю запрос, обхожу его. Из полей имеющих строковый тип значение получаю ТабельныйНомер=НаборЗаписей.Fields("tabnum").Value вот так, а если тип поля bigint, то КодКарты=НаборЗаписей.Fields("cardnumber").Value вылетает с ошибкой Тип переменой не поддерживается. Как бы победить это дело?
Вот код
Соединение=СоздатьОбъект("ADODB.Connection");
НаборЗаписей=СоздатьОбъект("ADODB.Recordset");
СтрокаКоннекта="driver={SQL Server};server=OIT-BOV\PARSECDB;Database=ParsecDB";
Соединение.ConnectionTimeOut=5;
Соединение.CursorLocation=3;
Попытка
Соединение.Open(СтрокаКоннекта);
Исключение
Предупреждение("Невозможно установить соединение с базой данных!");
Возврат;
КонецПопытки;
СтрокаЗапроса="Select firstname, secondname, thirdname, cardnumber, tabnum from dbo.Personel";
НаборЗаписей=Соединение.Execute(СтрокаЗапроса);
Пока НаборЗаписей.Eof()=0 Цикл
ТабельныйНомер=НаборЗаписей.Fields("tabnum").Value;
КодКарты=НаборЗаписей.Fields("cardnumber").Value;
.....
|
|
1
ДенисЧ
17.10.11
✎
10:33
|
кастуй в строку.
|
|
2
Господин ПЖ
17.10.11
✎
10:33
|
открой convert или cast для себя
|
|
3
Lepochkin
17.10.11
✎
10:38
|
спасибо за открытие )) что-то сам после выходных не додумался )) ну а так ради интереса 1ска с интовыми типами не дружит что ли?
|
|
4
ДенисЧ
17.10.11
✎
12:45
|
(3) она много с чем не дружит :-)
|
|
5
kuza2000
17.10.11
✎
14:01
|
В 8 bigint нормально передается. Это так, к слову, только что делал это :)
|
|
6
Torquader
17.10.11
✎
14:49
|
BigInt преобразуется в Double, Currency, Decimal и т.п. - меньше места занимает, но семёрка - она кроме Double ничего правильно не понимает.
P.S. если старшие четыре байта незаполнены, то смело можно в Long переводить.
|
|