Страница 1 из 1

VBA vs NRec

Добавлено: 29 июн 2010, 19:38
bezpal
Добрый день.
Из VBA через ADO подключаюсь к серверу галактики (MS SQL). Делаю некий запрос к базе и вот в условии запроса мне нужно указать явный NRec таблицы (WHERE t$SPMove.f$CNastrOS=А вот тут должно быть значение NRec'а таблицы NastrOS). В галактике это значение выглядит как 0000000000000002h, а вот как его указать в запросе непонятно. Вообще тип поля NRec'а binary и вот что сним делать и как с ним работать ума не приложу. Может быть кто нибудь сталкивался с такой проблемой?

Re: VBA vs NRec

Добавлено: 30 июн 2010, 09:18
ilshat
Мы в varchar его конвертим туды сюды :) Так удобнее работать из приложений и скриптов. Как конвертить здесь обсуждалось.

Re: VBA vs NRec

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

Подскажите, пожалуйста, как нужно конвертировать?

Re: VBA vs NRec

Добавлено: 30 июн 2010, 12:10
RAJAH
А не

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

convert(bigint, n.f$NRec)
ли? ))

Re: VBA vs NRec

Добавлено: 30 июн 2010, 14:20
bezpal
Спасибо!

Re: VBA vs NRec

Добавлено: 01 июл 2010, 09:25
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 не работает.