Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема 1cpp как получить значение поля(первичный ключ) (число прочтений - 2070 )
angel_c
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2015
1cpp как получить значение поля(первичный ключ)
16. Ноября 2015 :: 18:20
Печать  
Добрый вечер всем неравнодушным...
Имеется база 1С77(dbf), необходимо подхватить заказ из базы SQL (не 1с),(сам запрос сложнее, так как нужные данные из неск. таблиц), связи между таблицами по полю  (ID_CONTRACTOR)
Тип-uniqueidentifie
Первичный ключ
Упростила запрос ниже некуда
(Select *.*  не помогло)
Возвращает пустое поле. (Запрос в SQLQuery выполняется нормально)



ВспомогательнаяБаза = СоздатьОбъект("ODBCDataBase");
ЗапросКБазе = СоздатьОбъект("ODBCRecordSet");
СтрокаСоединения = "Driver={SQL Server};Server=SQL\SQLEXPRESS;Database=xxxx;Uid=yyyy;Pwd=zzzzzz;";
     ВспомогательнаяБаза.Соединение(СтрокаСоединения);
     ЗапросКБазе.УстБД(ВспомогательнаяБаза); 
     Рез=ВспомогательнаяБаза.ЕстьСоединение();
     Если Рез>0 Тогда
           Сообщить("Соединение установлено");
     Иначе 
           Сообщить(ВспомогательнаяБаза.ПолучитьОписаниеОшибки());
           Возврат;
     КонецЕсли; 
ТекКод="123456";
                 ТекстМоегоSQLзапроса="
                 |SELECT 
                 |CODE,
                 |NAME,
                 |ID_CONTRACTOR,
                 |PAY_DAYS
                 |FROM [dbo].[CONTRACTOR]               
                 |WHERE CODE= :Тек";
                 
                 ЗапросКБазе.УстановитьТекстовыйПараметр("Тек" ,ТекКод);
                 ЗапросКБазе.ВыполнитьИнструкцию(ТекстМоегоSQLзапроса,ТЗ,1) ;
                 ТЗ.ВыбратьСтроку();

Где собака зарыта?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: 1cpp как получить значение поля(первичный ключ)
Ответ #1 - 16. Ноября 2015 :: 19:02
Печать  
А
SELECT TOP 10 ...
FROM ...
и вообще без всяких WHERE
что вернет?
А если ЗапросКБазе.Отладка(1); сначала написать, то какой запрос выйдет? А если этот запрос погонять в SQLQuery? Ну и про CODE, попробовать так:
SELECT TOP 10 "#"+CODE+"#", "%"+:Тек+"%", ... FROM [dbo].[CONTRACTOR]
ЗапросКБазе.УстановитьТекстовыйПараметр("Тек" ,ТекКод);
ЗапросКБазе.ВыполнитьИнструкцию(ТекстМоегоSQLзапроса,ТЗ,1) ;
ТЗ.ВыбратьСтроку();
и посмотреть - может чем отличаются CODE от :Тек ?
  
Наверх
ICQ  
IP записан
 
angel_c
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2015
Re: 1cpp как получить значение поля(первичный ключ)
Ответ #2 - 16. Ноября 2015 :: 19:09
Печать  
Так возвращает нормальную Таблицу, Поля заполнены как надо, кроме ID_CONTRACTOR
оно просто пустое

(SELECT *.*) -тоже всю [dbo].[CONTRACTOR] показывает, просто первое поле (ID_CONTRACTOR) пустое...
  
Наверх
 
IP записан
 
angel_c
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2015
Re: 1cpp как получить значение поля(первичный ключ)
Ответ #3 - 16. Ноября 2015 :: 19:13
Печать  
в SQLQuery  это значение поля ---вот такое  6363e6b5-9eae-47fc-9eda-5a5c67d0f770, ( мне оно нужно )
  
Наверх
 
IP записан
 
angel_c
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2015
Re: 1cpp как получить значение поля(первичный ключ)
Ответ #4 - 16. Ноября 2015 :: 19:18
Печать  
Т.е. ПРи выполнении запроса в оболочке SQLQuery вижу
Таблицу из 4-х колонок

6363e6b5-9eae-47fc-9eda-5a5c67d0f770 
123456
Рога И копыта
1
при выполнении запроса в Оболочке  1С с использование dll

123456
Рога И копыта
1
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1cpp как получить значение поля(первичный ключ)
Ответ #5 - 17. Ноября 2015 :: 07:04
Печать  
Получи его как строку:
cast(ID_CONTRACTOR as char(36))
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
angel_c
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 16. Ноября 2015
Re: 1cpp как получить значение поля(первичный ключ)
Ответ #6 - 17. Ноября 2015 :: 07:29
Печать  
berezdetsky

ДА...Огромное спасибо. Получилось...
(пока на минимальном запросе). Вечером проверю на полном...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать