Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры? / 25 сообщений из 67, страница 1 из 3
20.04.2005, 17:44
    #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
20.04.2005, 17:48
    #33026009
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
а зачем его double обзывать. если он - int?
...
Рейтинг: 0 / 0
20.04.2005, 17:49
    #33026015
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
Если этот параметр на сервере имеет тип int, то почему вы его пытаетесь передать как adDouble?
Если вы его в аксесе описали As Double, то почему вы говорите, что оно у вас в аксесе - Long?

И зачем вы размер параметра указываете adEmpty?
...
Рейтинг: 0 / 0
20.04.2005, 17:51
    #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
20.04.2005, 17:58
    #33026050
Ольга_Т
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
а если параметр отсылать как integer, сервер его как tinyint интерпретирует.
...
Рейтинг: 0 / 0
20.04.2005, 18:01
    #33026060
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
а можно полюбоваться на заголовок ХП?
а то я чудеса не верю
...
Рейтинг: 0 / 0
20.04.2005, 18:18
    #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
20.04.2005, 18:19
    #33026117
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
Ольга, вы adEmpty пробовали убирать или нет?
Нехорошо заставлять сервер думать, что integer занимает 0 байт
...
Рейтинг: 0 / 0
20.04.2005, 18:21
    #33026125
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
А провайдер ODBC почему?

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

и насчет ошибки этой:
надо указать ADO какого типа этот параметр в той СП которая вызоветься после cmd.execute. то есть АДО получает из клиента описание параметра который на сервере в СП .
...
Рейтинг: 0 / 0
20.04.2005, 18:33
    #33026164
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
токо хотел ответ .....опубликовать....а пока писал уже 4 успело:)
...
Рейтинг: 0 / 0
20.04.2005, 18:41
    #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
20.04.2005, 18:49
    #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
20.04.2005, 18:55
    #33026248
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
AlexeiKadEmpty
да и такого вообще нету:)
...
такой константы в ADo нету, она от VBA видимо.
Вот ведь блин... а мужики то и не знают...
...
Рейтинг: 0 / 0
20.04.2005, 18:58
    #33026257
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
:))
скажем по другому....для параметра attrib нету такой константы. извини, что я не уточнил.я же из хелпа глянул просто...и не надо так тыкать...че уж совсем чтоли всех тут за новичков держишь.
...
Рейтинг: 0 / 0
20.04.2005, 19:00
    #33026262
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
[quot AlexeiK]adEmpty
да и такого вообще нету:)
вот для этого параметра : Attrib quot]
вот для тебя специально и для всех , кто тоже не уловил смысла.надо же....я ведьдаже написал все правильно. что ты меня путать то начал.
...
Рейтинг: 0 / 0
20.04.2005, 19:06
    #33026279
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как назначить формат числа при вызове процедуры?
это ты специально для меня вот это вот написал?
такой константы в ADo нету, она от VBA видимо.
и утверждаешь, что это правильно?

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

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


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

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

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

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


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