Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр() (число прочтений - 5973 )
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
10. Ноября 2012 :: 09:42
Печать  
Собственно, сабж.
Есть ли какой-нибудь способ (кроме переопределения метода УстановитьТекстовыйПараметр) передать экземпляр КОП в качестве тексового параметра в процедуру УстановитьТекстовыйПараметр класса ODBCReordSet.

Обратный процесс работает замечательно, через _SQLCreate, а вот как туда отправить?
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #1 - 11. Ноября 2012 :: 13:45
Печать  
Bill писал(а) 10. Ноября 2012 :: 09:42:
Собственно, сабж.
Есть ли какой-нибудь способ (кроме переопределения метода УстановитьТекстовыйПараметр) передать экземпляр КОП в качестве тексового параметра в процедуру УстановитьТекстовыйПараметр класса ODBCReordSet.

Обратный процесс работает замечательно, через _SQLCreate, а вот как туда отправить?

А что ты подразумеваешь под "передать экземпляр КОП в качестве тексового параметра". Может посмотришь сюда
  
Наверх
ICQ  
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #2 - 11. Ноября 2012 :: 16:18
Печать  
Salimbek писал(а) 11. Ноября 2012 :: 13:45:
А что ты подразумеваешь под "передать экземпляр КОП в качестве тексового параметра".


Ну скажем так, экземпляр КОП - это аналог (не наследник) штатного объекта Справочник. Вот его то и надо передать в запрос в качестве параметра, чтобы он превратился в строку вида ИД.

Надеюсь, понятно объяснил? Улыбка

Salimbek писал(а) 11. Ноября 2012 :: 13:45:
...Может посмотришь сюда

Сериализацию я попробовал в первую очередь. Улыбка

  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #3 - 12. Ноября 2012 :: 02:54
Печать  
Что-то ты гонишь...
В качестве параметра в запрос имеет смысл передавать только значение реквизита или ссылку на объект БД. В КОПе может содержасять как то, так и другое, но сам КОП никак не может являться ни тем, ни другим, так зачем же его передавать?
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #4 - 12. Ноября 2012 :: 07:11
Печать  
Dmitry The Wing писал(а) 12. Ноября 2012 :: 02:54:
Что-то ты гонишь...
В качестве параметра в запрос имеет смысл передавать только значение реквизита или ссылку на объект БД. В КОПе может содержасять как то, так и другое, но сам КОП никак не может являться ни тем, ни другим, так зачем же его передавать?

А может наооборот? (в смысле не я гоню) Улыбка

Почему это сам КОП не может являться ссылкой на объект БД?
У меня именно такой КОП - практически полный аналог СправочникСсылка.ХХХХ из восьмерки.

Причем, если я в запросе пишу:
SELECT Спр.Ссылка [Ссылка $Класс.СправочникСсылка.ХХХХ]
то я получаю в столбце Ссылка имено объекты СправочникСсылка.ХХХХ, для этих целей есть _SQLCreate.
А вот почему не предусмотрена обратная возможность? Или она есть, но я про неё не знаю?
Класс сериализуется.
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #5 - 12. Ноября 2012 :: 19:30
Печать  
Я бы не парился и :
либо добавил бы в класс метод типа ТекущийЭлемент() возвращающий ссылку,
либо создал бы класс-наследник от ODBCReordSet, где переопределил под себя метод УстановитьТекстовыйПараметр()(Пример этого AccountsRecordset)
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #6 - 13. Ноября 2012 :: 04:11
Печать  
А как у тебя в базе хранится этот самый $Класс.СправочникСсылка.ХХХХ ?
в виде ид9 элемента базового класса "Справочник"?
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #7 - 13. Ноября 2012 :: 06:37
Печать  
Satans Claws писал(а) 13. Ноября 2012 :: 04:11:
А как у тебя в базе хранится этот самый $Класс.СправочникСсылка.ХХХХ ?
в виде ид9 элемента базового класса "Справочник"?

Нет, GUID, [binary](16) NOT NULL
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #8 - 13. Ноября 2012 :: 06:39
Печать  
zk96 писал(а) 12. Ноября 2012 :: 19:30:
Я бы не парился и :
либо добавил бы в класс метод типа ТекущийЭлемент() возвращающий ссылку,
либо создал бы класс-наследник от ODBCReordSet, где переопределил под себя метод УстановитьТекстовыйПараметр()(Пример этого AccountsRecordset)

Так я то и не парюсь
Переопредилил метод и усе работает Улыбка
Но вопрос то остался.
Почему оттуда можно, а туда нет?
  
Наверх
 
IP записан
 
zk96
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 320
Местоположение: Киев
Зарегистрирован: 15. Ноября 2009
Пол: Мужской
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #9 - 13. Ноября 2012 :: 09:12
Печать  
Насколько я помню преобразование в класс- это очень медленное дело. Наверное никто и не захотел его делать в обе стороны.
А сейчас уже 1С++ никто и не занимантся. Разве-что KMS что-то еще делает. Так-что используем, что есть.
Но если ты хочешь, переделай, проект то открытый - "коди", что твоей душе угодно.
  
Наверх
 
IP записан
 
Bill
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 64
Зарегистрирован: 04. Ноября 2008
Re: Возможно ли передать объект КОП в RecordSet.УстановитьТекстовыйПараметр()
Ответ #10 - 13. Ноября 2012 :: 09:20
Печать  
zk96 писал(а) 13. Ноября 2012 :: 09:12:
Насколько я помню преобразование в класс- это очень медленное дело. Наверное никто и не захотел его делать в обе стороны.
А сейчас уже 1С++ никто и не занимантся. Разве-что KMS что-то еще делает. Так-что используем, что есть.
Но если ты хочешь, переделай, проект то открытый - "коди", что твоей душе угодно.

Да я уже и так обошелся Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать