Имя: Пароль:
1C
1C 7.7
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 переводить.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.