powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры?
25 сообщений из 67, страница 1 из 3
Как назначить формат числа при вызове процедуры?
    #33025995
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня величина, номер операции, который в SQL - integer, в access - Long.

При попытке выполнения
Код: plaintext
1.
2.
3.
4.
...varAlongOperationID As Double...
...
Set prm = cmd.CreateParameter("AlongOperationID", adDouble, adParamInput, adEmpty, varAlongOperationID)
    cmd.Parameters.Append prm
    cmd.Execute
Получаю ошибку
Код: plaintext
- 2147217833  [Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error for data type smallint, value =  56715 .

adInteger, adLong дают такой же результат. Собственно, попробованы все варианты существующих форматов.

На сервере
Код: plaintext
     @AlongOperationID int =  0 ,
и ручной прогон процедуры проходит нормально, также как и полнотекстовый вызов из Access. А вот с назначением параметров глючит по поводу smallint. Как бороться?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026009
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем его double обзывать. если он - int?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026015
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если этот параметр на сервере имеет тип int, то почему вы его пытаетесь передать как adDouble?
Если вы его в аксесе описали As Double, то почему вы говорите, что оно у вас в аксесе - Long?

И зачем вы размер параметра указываете adEmpty?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026020
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вот так всё работает
Код: plaintext
1.
2.
3.
4.
5.
ActiveConnection = cnn
    .CommandText = "vv_mhp_klass_corr_yes"
    .CommandType = adCmdStoredProc
    '=======Передача данных в ХП=================
    .Parameters.Append .CreateParameter("@nplat", adInteger, adParamInput, , Me.Nplat)
Мож adEmpty убрать
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026050
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если параметр отсылать как integer, сервер его как tinyint интерпретирует.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026060
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно полюбоваться на заголовок ХП?
а то я чудеса не верю
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026111
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ALTER                  PROCEDURE MakeInvNP_new
(    
     @pDepID   int =  0 ,
     @pInvTypeID  int =  0 ,
     @StoreID int =  2 ,
     @AlongOperationID int =  0 ,
     @DepCtrID int =  0 
 
 )  

-- вставляет строку в таблицу шапок накладных Invoices
-- и возвращает номер счетчика новой записи RecordID или  0 
AS  
BEGIN
Пожалуйста...
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026117
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга, вы adEmpty пробовали убирать или нет?
Нехорошо заставлять сервер думать, что integer занимает 0 байт
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026125
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А провайдер ODBC почему?

SQLOLEDB как-то привычнее при использовании ADO
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026146
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Завтра я подумаю.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026154
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Та если параметр отсылать как integer, сервер его как tinyint интерпретирует.
вроде интерпретация происходи в СП....и получаеться приведение типов.
лучше через метод refresh отдать параметры СП в ADO.если их конечно не 100 штук. ну и правда , че тут коллекцию параметров создавать, каждый параметр описывать......тут заснуть можно :)

и насчет ошибки этой:
надо указать ADO какого типа этот параметр в той СП которая вызоветься после cmd.execute. то есть АДО получает из клиента описание параметра который на сервере в СП .
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026164
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
токо хотел ответ .....опубликовать....а пока писал уже 4 успело:)
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026200
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Long(vba) adInteger(ADO Data Type property constants)
Integer(vba) adSmallInt (ADO Data Type property constants)

Double(vba) adDouble (ADO Data Type property constants)
Not supported (vba) adBinary (ADO Data Type property constants)
даже есть которые из vba передать нельзя.
как я понял тут этот вариант....тогда и в сп должен быть double или float.vba имеет токо 3 этих а smallint tinyint это уже серверные...
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026230
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adEmpty
да и такого вообще нету:)
вот для этого параметра : Attrib
Optional. A FieldAttributeEnum value, whose default value is adFldDefault, that specifies attributes for the new field. If this value is not specified, the field will contain attributes derived from Type
такой константы в ADo нету, она от VBA видимо.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026248
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKadEmpty
да и такого вообще нету:)
...
такой константы в ADo нету, она от VBA видимо.
Вот ведь блин... а мужики то и не знают...
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026257
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:))
скажем по другому....для параметра attrib нету такой константы. извини, что я не уточнил.я же из хелпа глянул просто...и не надо так тыкать...че уж совсем чтоли всех тут за новичков держишь.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026262
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AlexeiK]adEmpty
да и такого вообще нету:)
вот для этого параметра : Attrib quot]
вот для тебя специально и для всех , кто тоже не уловил смысла.надо же....я ведьдаже написал все правильно. что ты меня путать то начал.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026279
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это ты специально для меня вот это вот написал?
такой константы в ADo нету, она от VBA видимо.
и утверждаешь, что это правильно?

------------------------
P.S. Пардон, но по-моему из пяти Ваших сообщений в этой теме - ни одного в тему. Внимательнее надо быть.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026316
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорныйэто ты специально для меня вот это вот написал?
такой константы в ADo нету, она от VBA видимо.
и утверждаешь, что это правильно?

------------------------
P.S. не тебе тут расценивать , че в тему , а че нет. если ты таков , что откусываешь от предложения , что тебе надо ...а общий смысл тебя не волнует , то я писал специально для тебя....так как я смотрю тебе в этой ветке вообще не начто просто ответить...и для тебя придумал вот такой ход..
никто не утверждает....ты глазки разуй на 180 градусов и глянь что я поправился сразу после того ,как ты откусил от моего предложения и выложил глупый скриншот.ты даже троеточие поставил чтобы твой скриншот был не таким глупым...как он стал сейчас. то что ты object browser юзать для проверки таких высказываний можешь это хорошо.


промолчу......
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33026333
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
промолчу......
правильно.
иногда лучше жевать, чем говорить.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027356
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey ShА провайдер ODBC почему?

SQLOLEDB как-то привычнее при использовании ADO
SQLOLEDB требует явно объявлять провайдера, поэтому я как та королева, которая подписывала приговоры, использую более короткие синтаксические конструкции. На большее разумения не хватает.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027364
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т Alexey ShА провайдер ODBC почему?

SQLOLEDB как-то привычнее при использовании ADO
SQLOLEDB требует явно объявлять провайдера, поэтому я как та королева, которая подписывала приговоры, использую более короткие синтаксические конструкции. На большее разумения не хватает.

Работа через лишний слой не добавлляет ни надёжности. ни призводительности
строку подключения можно просто взять из
Код: plaintext
currentproject.BaseConnectionString
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027397
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKдаже есть которые из vba передать нельзя.
как я понял тут этот вариант... Дату, например, я никак не могу через параметр передать, не получается никакими силами. Просто не пишу ХП, которые должны что-то возвращать, с параметрами даты, а если уж никак не обойти, два варианта, либо передаю как текст, либо создаю #ХП cо склееным в VBA текстом, с одним выходным параметром.
Если сабж не разрешу, придется и тут клепать временную вызывающую процедуру(((
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027399
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Sh
Код: plaintext
currentproject.BaseConnectionString
mdb???
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027407
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т AlexeiKдаже есть которые из vba передать нельзя.
как я понял тут этот вариант... Дату, например, я никак не могу через параметр передать, не получается никакими силами. Просто не пишу ХП, которые должны что-то возвращать, с параметрами даты, а если уж никак не обойти, два варианта, либо передаю как текст, либо создаю #ХП cо склееным в VBA текстом, с одним выходным параметром.
Если сабж не разрешу, придется и тут клепать временную вызывающую процедуру(((
Ай яй-яй. Что-то в консерватории не так.
...
Рейтинг: 0 / 0
25 сообщений из 67, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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