powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нецелые входные параметры ХП.
25 сообщений из 26, страница 1 из 2
Нецелые входные параметры ХП.
    #32477981
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверняка это было на форуме, но найти не удается.

интересует вопрос, кто как передает числа с плав. точкой в параметры хранимки.
АсХП, adp
вызываю из кода VB через объект Command
заполняю параметры.
проблема в том, что Акс передает число с разделителем зпт, а сервак хочет тчк.

как правильнее это обойти?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478028
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
str(123.12)="123.12"
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478030
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я что-то хреново объяснил?
или никто не передает нецелые числа в хранимки как параметры?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478034
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo:
я так понимаю речь идет о
Replace( str(10,21) , ',' , '.' ) ?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478035
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cmd.parameters.append cmd.createparameter("asd",,,123.45)
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478038
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя так понимаю речь идет о
Replace( str(10,21) , ',' , '.' ) ?
Нет, str возвращает разделитель ".".
Хотя я и не понимаю, зачем надо сначала преобразовывать число в строку...
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478053
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo:
авторХотя я и не понимаю, зачем надо сначала преобразовывать число в строку...

если я напишу
cmd.parameters.append cmd.createparameter("asd",,,me.field)
а в поле field будет число 5,2
то в хп передается 5,2
что для сервака числом не является
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478069
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub test()
  Dim cmd As New Command
  Dim rs As ADODB.Recordset
  Dim t As Long
  cmd.ActiveConnection = CurrentProject.Connection
  cmd.CommandText =  "СохраненнаяПроцедура1" 
  cmd.CommandType = adCmdStoredProc
  t =  8 . 4 
  cmd.Parameters.Append cmd.CreateParameter( "@aaa" , adDouble, adParamInput, , t)
  Set rs = cmd.Execute
  rs.MoveLast
  MsgBox rs.RecordCount
  rs.Close
End Sub

нормально отработало
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478078
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
:)
это конечно нормально отработает.
а ты попробуй взять значение из поля формы.
с учетом, что у тебя русские стандарты винды.
а в наших стандартах разделитель ЗПТ.
он и передастся в хранимку и она благополучно не отработает.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478093
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если заполняеш коллекцию параметров для Command
то никакого перевода в строку не должно быть
возможно праметр в коллекции нетипизированн.

.Parameters.Append .CreateParameter("@Id", adBigInt, adParamInput, , Id_)

где adBigInt и есть типизирующая константа
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478104
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первым делом при установке нового компа ставлю в качестве разделителя целой и дробной части '.'.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478116
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПервым делом при установке нового компа ставлю в качестве разделителя целой и дробной части '.'

оно конечно дело хорошее.
но все таки как с этим бороться?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478119
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk:
хочу тебя огорчить, эта константа в данном случае ничем не поможет
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478124
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я полный чайник в хранимых процедурах, но позволю себе спросить: а почему нельзя взять val от этого значения поля формы? Неужели обязательно передавать как стринг?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478127
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело, скорее всего, не в точках и запятых. Давай фрагмент кода + обявление переменной в ХП.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478354
MikeLV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Sasha_1
если я напишу
cmd.parameters.append cmd.createparameter("asd",,,me.field)
а в поле field будет число 5,2
то в хп передается 5,2
что для сервака числом не является
А что, me.field не числовое поле?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478397
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если задуматься над машинным представлением чисел с плавающей точкой, то станет понятно, что региональные настройки тут совершенно не при чем.
Давай фрагмент кода + обявление переменной в ХП.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478587
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли задуматься над машинным представлением чисел с плавающей точкой, то станет понятно, что региональные настройки тут совершенно не при чем.

Вы меня удивляете. как же не при чем-то?
могу конечно и код показать, мне не жалко :)
Вот вам ХП
Код: plaintext
1.
2.
3.
4.
ALTER PROCEDURE dbo.spUpdateNacByPost
(@art int, @nacSkl numeric( 18 , 5 ))
AS UPDATE    dbo.tabNacenki
SET   colNumNacSkl = @nacSkl 
WHERE     (colIntArtikul = @art)


вот вам Аксес
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Dim cmd As New ADODB.Command
    cmd.ActiveConnection = CurrentProject.Connection
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText =  "spUpdateNacByPost" 
    cmd.Parameters.Append cmd.CreateParameter( "RETURN_VALUE" , adInteger, adParamReturnValue)
    cmd.Parameters.Append cmd.CreateParameter( "art" , adBigInt, adParamInput,,me!art)
    cmd.Parameters.Append cmd.CreateParameter( "nacSkl" , adDouble, adParamInput,, Me!fldNacSkl)
    cmd.Execute
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478597
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да забыл сказать:
me!art=5
Me!fldNacSkl=1,19
/именно через запятую, т.к. она является разделителем целой и дробной части./
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478624
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не проще ли
испльзоаить money?
естли канешна не использовать
больше 4 знаков после запятой.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478655
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объясняю еще раз.
при создании параметра его значение получается 1,19 (через запятую) вне зависимости от типа этого самого параметра (хоть текст).
параметр попадает в хранимку и там сервак его не понимает, т.к. у сервака разделитель естественно точка.
вот.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478664
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
меня собственно интересует ответ на вопрос:
Кто как превращает ЗПТ в ТЧК в нецелых числах?
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478676
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему параметр nacSkl у хранимой процедуры объявлен как Numeric, а параметр объявляешь не как adNumeric (Indicates an exact numeric value with a fixed precision and scale ) и без Size (specifies the maximum length for the parameter value in characters or bytes). Параметр art вообще почему-то в процедуре обяъвлен как Integer, а создаешь adBigInt (а надо adInteger)/ Возможно причина именно в этом. Ты сделай cmd.Parameters.Refresh и посмотри какие значения типы и размеры парметров получены акесом.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478776
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогнал про adInteger - addouble будет правильно.

И вообще у меня все работает и так как было.
.CreateParameter("@p", adDouble, adParamInput, , Поле1)
Только Поле1 имеет Формат Фиксированный. Разделитель таким образом становится запятая, а сервак получает то, что нужно.
...
Рейтинг: 0 / 0
Нецелые входные параметры ХП.
    #32478789
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прогнал на различных, в том числе и не совпадающих, комбинациях "Тип поля" - "Тип входного параметра" (за исключением тип параметра = numeric)
Все нормально работает при любых десятичных разделителях (пробовалась точка, запятая и буква "я")
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нецелые входные параметры ХП.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]