VBA vs NRec

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
bezpal
Сообщения: 10
Зарегистрирован: 09 мар 2010, 12:46

VBA vs NRec

Сообщение bezpal »

Добрый день.
Из VBA через ADO подключаюсь к серверу галактики (MS SQL). Делаю некий запрос к базе и вот в условии запроса мне нужно указать явный NRec таблицы (WHERE t$SPMove.f$CNastrOS=А вот тут должно быть значение NRec'а таблицы NastrOS). В галактике это значение выглядит как 0000000000000002h, а вот как его указать в запросе непонятно. Вообще тип поля NRec'а binary и вот что сним делать и как с ним работать ума не приложу. Может быть кто нибудь сталкивался с такой проблемой?
ilshat
Местный житель
Сообщения: 222
Зарегистрирован: 04 июн 2008, 14:35
Откуда: Стерлитамак
Контактная информация:

Re: VBA vs NRec

Сообщение ilshat »

Мы в varchar его конвертим туды сюды :) Так удобнее работать из приложений и скриптов. Как конвертить здесь обсуждалось.
bezpal
Сообщения: 10
Зарегистрирован: 09 мар 2010, 12:46

Re: VBA vs NRec

Сообщение bezpal »

convert(varchar, n.f$NRec) - выдает некий непонятный символ
convert(int, n.f$NRec) - выдает значение 2, когда:
NRec=0000000000000002h
NRec=0001000000000002h

Подскажите, пожалуйста, как нужно конвертировать?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: VBA vs NRec

Сообщение RAJAH »

А не

Код: Выделить всё

convert(bigint, n.f$NRec)
ли? ))
bezpal
Сообщения: 10
Зарегистрирован: 09 мар 2010, 12:46

Re: VBA vs NRec

Сообщение bezpal »

Спасибо!
ilshat
Местный житель
Сообщения: 222
Зарегистрирован: 04 июн 2008, 14:35
Откуда: Стерлитамак
Контактная информация:

Re: VBA vs NRec

Сообщение ilshat »

bezpal писал(а):convert(varchar, n.f$NRec) - выдает некий непонятный символ
convert(int, n.f$NRec) - выдает значение 2, когда:
NRec=0000000000000002h
NRec=0001000000000002h

Подскажите, пожалуйста, как нужно конвертировать?
Мда... Вы надсмехаетесь что ли? MSSQL знать не знает про извращения Галактики с её NREC-ами.
Я же предлагал вам поискать здесь... Однако кнопку поиск вы не нашли.

Код: Выделить всё

CREATE  function [dbo].[uf_CompToStr] (  @COMP BINARY(8)  ) 
returns VARCHAR(20) as
begin
	RETURN CONVERT(VARCHAR(20),(CONVERT(BIGINT,@COMP)-CONVERT(BIGINT,0x8000000000000000)))
end
Вот это вариант с varchar. Проще в хранении и передачи параметрами. Т.к. с bigint тот же ADO не работает.
Ответить