Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод параметров в процедуру в ADO 
:(
    Опции темы
Гость_Nicka
  Дата 2.7.2003, 12:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проблема такая
Имеется хп с n параметрами
В модуле формы с помощю ADO создаю Command объект и присваиваю объекты параметров
что то вроде этого
set parameter(....)
cmm.append parameter (...)
cmm.prepared
cmm.execute

(Код с ошибками но суть ясна)
Так вот во первых если у значения параметра значение "" то вадается ошибка
ладно тогда при "" я параметр не создаю а в Хпроцедуре задаю параметру Default value
все хорошо только если какой параметр у меня "" и я его несоздаю то при передаче параметров в хп порядок параметров меняется и значения параметров путаются
в результате insert который у меня в хп вносит неправильные значения

Ну все понятно?
Жду решения проблемы с нетерпением!!!
  Вверх
valex13
Дата 3.7.2003, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

Репутация: 1
Всего: 1



Цитата
Ну все понятно?
Жду решения проблемы с нетерпением!!!

Как раз не понятно. Чего так сложно-та?
Ты скажи чего ты хочешь, я попробую сказать как сделать...
PM MAIL ICQ   Вверх
vickr
Дата 3.7.2003, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Приведи кусок кода, который не работает - тогда станет ну ваще понятно smile.gif
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
nicka
Дата 3.7.2003, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Ладно погодите до завтра
Покажу...
PM MAIL   Вверх
nicka
Дата 4.7.2003, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



With cnn
.Provider = "sqloledb"
.Open "Provider=Microsoft.Access.OLEDB.10.0;User Id=sa;Password=hunter;Data Source=marina;Initial Catalog=tttSQL;Data Provider=SQLOLEDB.1"
End With

With cmm
Set class1 = .CreateParameter("class", adVarWChar, adParamInput, Len(strclass), strclass)
Set class2 = .CreateParameter("class2", adVarWChar, adParamInput, Len(strclass2), strclass2)
.Parameters.Append class1
.Parameters.Append class2
Set .ActiveConnection = cnn
.CommandType = adCmdStoredProc
.CommandText = "pr_classificators"
.Execute
end with

Проблема такая - если значение strclass1="", то .Parameters.Append class1 выдает ошибку
тогда я ставлю If проверку на пустое значение и вслучае "" не запускаю .Parameters.Append class1
Но в этом случае в процедуру значение параметра class2 подставляется в параметр class1, таким образом ввод данных портится...

Что делать, спрашиваю я вас!
PM MAIL   Вверх
vickr
Дата 4.7.2003, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Да, проблемка неприятная. Один из способов решить ее "в лоб" - передавать не пустую строку, а логически недопустимое значение (например, "NULL" или "DEFAULT"), а в хп, соответственно, эти значения отслеживать и "превращать" их в настоящий NULL. Некрасиво, но действенно. А так, конечно, нужно покопать инфу...
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
nicka
Дата 4.7.2003, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Скажи а как это отследить в хп
Я не очень с синтаксисом хп
Нет литературы, подскажи где взять и пожалуйста приведи пример по данному случаю(как это отследить в хп). pleaseeeee!!!
PM MAIL   Вверх
vickr
Дата 4.7.2003, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Так ведь вручную, никаких примочек. Я ж говорю - способ некрасивый. В общем сейчас набросаю суть:
Код
Create Procedure pr_classificators1
(
   @class1 varchar(50),
   @class2 varchar(50)
)
As
if ( @class1 = 'NULL' )
   SET @class1 = NULL
if ( @class2 = 'NULL' )
   SET @class2 = NULL
INSERT INTO table_1 ( class1, class2 )
VALUES ( @class1, @class2 )

Если ты на клиенте передашь в хп в качестве параметров служебные строковые значения (в данном случае это "NULL"), то в таблицу вставятся зачения NULL, как и подразумевается.
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
nicka
Дата 14.7.2003, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



vickr

Все хорошо только что делать если у меня параметр типа ntext,
тогда выдаеться ошибка, что к типу ntext нельзя применять оператор сравнивания @class1 = 'NULL'

Что делать, аconfused.gif?
PM MAIL   Вверх
nicka
Дата 14.7.2003, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Ладно подожду до завтра
Только завтра уж обязательно ответте, хорошо?
PM MAIL   Вверх
nicka
Дата 15.7.2003, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Тишинааааааа
Что нет умных?
PM MAIL   Вверх
vickr
Дата 15.7.2003, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



nicka
А нужно ли ntext использовать? Тебе необходимо хранить данные до 2Гб?
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
nicka
Дата 15.7.2003, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Цитата
А нужно ли ntext использовать? Тебе необходимо хранить данные до 2Гб?


Нет, просто у меня текст в Unicode, по-другому не пишет,
и потом что ntext , что text , ошибка то все равно одна...
PM MAIL   Вверх
vickr
Дата 15.7.2003, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.5.2003
Где: Санкт-Петербург

Репутация: нет
Всего: нет



А что насчет nvarchar? Это ж тоже Unicode.
--------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:)
PM MAIL   Вверх
nicka
Дата 15.7.2003, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 11.6.2003

Репутация: нет
Всего: 1



Цитата
что насчет nvarchar? Это ж тоже Unicode.


Да, но мне нужно мемо поле для текстовой большой информации
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0570 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.