powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры?
67 сообщений из 67, показаны все 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
Как назначить формат числа при вызове процедуры?
    #33027414
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т Alexey Sh
Код: plaintext
currentproject.BaseConnectionString
mdb???
По барабану. и в adp , и в mdb - везде работает :)
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027429
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОльгаТ в http://www.sql.ru/forum/actualthread.aspx?tid=173934#1446893 ...Сервис-пак стоит, Jet SP 9 , MDAC 2.8,...
А разве 9-й уже выходил?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027432
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т AlexeiKдаже есть которые из vba передать нельзя.
как я понял тут этот вариант... Дату, например, я никак не могу через параметр передать, не получается никакими силами. Просто не пишу ХП, которые должны что-то возвращать, с параметрами даты, а если уж никак не обойти, два варианта, либо передаю как текст, либо создаю #ХП cо склееным в VBA текстом, с одним выходным параметром.
Если сабж не разрешу, придется и тут клепать временную вызывающую процедуру(((

really?
тада вместо create используй refresh...
я вот передаю дату куда токо надо...
токо формат даты на yyyymmdd меняю и не более.(чтобы была однозначность)

ActiveConnection = cnn
.CommandText = "vv_mhp_klass_corr_yes"
.CommandType = adCmdStoredProc
'=======Передача данных в ХП=================
.parametrs.refresh
.parametrs("@AlongOperationID")=varAlongOperationID
....
cmd.execute
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027438
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geo ОльгаТ в http://www.sql.ru/forum/actualthread.aspx?tid=173934#1446893 ...Сервис-пак стоит, Jet SP 9 , MDAC 2.8,...
А разве 9-й уже выходил?

а это уже не важно какой там sp на jet))) в adp проектах jet не используеться.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027451
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каюсь, 829558, помню, что девятка была. Восьмой, конечно, их уже столько, что в глазах прыгают.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027468
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AlexeiK

ActiveConnection = cnn
.CommandText = "vv_mhp_klass_corr_yes"
.CommandType = adCmdStoredProc
'=======Передача данных в ХП=================
.parametrs.refresh
.parametrs("@AlongOperationID")=varAlongOperationID
....
cmd.execute[/quot] Я так и делаю почти всегда, кроме случаев, когда нужно вернуть SCOPE_IDENTITY().
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027482
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ActiveConnection = cnn
.CommandText = "vv_mhp_klass_corr_yes"
.CommandType = adCmdStoredProc
'=======Передача данных в ХП=================
.parametrs.refresh
.parametrs("@AlongOperationID")=varAlongOperationID
.parametrs("@date")='20041212'
....
cmd.execute

ALTER PROCEDURE dbo.vv_mhp_klass_corr_yes
( @date datetime,@AlongOperationID int)
AS
select tbl.* from tbl where date=@date and opid=@AlongOperationID
GO

вот пример тебе для даты. то есть я к тому, что не надо себя ущемлять там..если вдруг в процедуре есть параметр типа datetime.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027512
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLOLEDB , adEmpty неявно, - все равно та же ошибка, интерпретируется как smallint.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027522
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027545
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С учетом предложений провайдера поменяла, синтаксис присвоения параметра тоже, результат прежний:
-2147217833 [Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error for data type smallint, value = 56715.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027556
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Черт, не оттуда скопировала. Ошибка та же, без ссылки на [Microsoft][ODBC SQL Server Driver][SQL Server].
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027561
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если у Вас получиться засунуть 56715 в smallint (smallint
Integer data from -2^15 (-32,768) through 2^15 - 1 (32,767). Storage size is 2 bytes.) - получите Нобелевскую премию
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027647
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_da-db_7msw.htm

пора бы уже кому то почитать :)
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027662
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос а где интерпритируеться так? в поле таблицы у которой типа данных smallint? поточнее про поле таблицы можно?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027664
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIGНу если у Вас получиться засунуть 56715 в smallint (smallint
Integer data from -2^15 (-32,768) through 2^15 - 1 (32,767). Storage size is 2 bytes.) - получите Нобелевскую премию Повторяю,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
PROCEDURE MakeInvNP_new
(    
     @pDepID   int =  0 ,
     @pInvTypeID  int =  0 ,
     @StoreID int =  2 ,
     @AlongOperationID int =  0 ,
     @DepCtrID int =  0 
 
 )  
smallint у меня образуется при передаче любого числового VBA формата.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027683
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, я кажется поняла. При вызове процедуры таким способом нельзя пропускать необязательные параметры. Но long все равно использовать нельзя, а integer преобразуется в smallint.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027692
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нееееее
проблема в том что, есть либо переменная либо поле таблицы типа smallint
а в нее присваиваетьсяс переменная типа int.
и притом это в твоей сп где ошибка....и про поле таблицы ?какого оно типа?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027707
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поле интеджер
переменная в поле ничего не пишет. Процедура либо создает новый документ, либо создает новый документ на основании старого, этот старый и зачитывает необязательная переменная, которая не лезет. Сейчас я проверю, может быть, она читается вместо департамента. Раньше я с помощью Double проблему стыковки числовых форматов обходила.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027712
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...varAlongOperationID As Double...
если все еще вот так в vba то это не правильно.
или уж вот так clng(varAlongOperationID)
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027715
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Ольга_Т
Ольга, а вы уверены что у вас именно на этапе передачи параметра беда случается? Может у вас в теле процедуры сбойный код, вот оно на нем и рушится?
Что профайлер выдает?
И еще. Попробуйте закомментировать всю процедуру кроме шапки, и вызвать.
Если вызовется - значит дело было не в бобине.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027779
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так навскидку
Set prm = cmd.CreateParameter("AlongOperationID", ...)
Уже неправильно
надо
Код: plaintext
1.
2.
3.
4.
...varAlongOperationID As Long
...
Set prm = cmd.CreateParameter("@AlongOperationID", adInteger, adParamInput,  4 , varAlongOperationID)
cmd.Parameters.Append prm
cmd.Execute
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027785
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП Может у вас в теле процедуры сбойный код, вот оно на нем и рушится?
Я писала, все работает. И в квери аналайзере, и из-под VBA, если процедуру вызывать
Код: plaintext
cmd.CommandType = adCmdText
Весь геморрой с
Код: plaintext
cmd.CommandType = adCmdStoredProc
и заданием параметров только ради того, чтобы вернуть SCOPE_IDENTITY() со вновь созданной строки. Так что сбоит конкретно присвоение параметров под VBA, а процедура вполне здоровая.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027821
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т ЛП Может у вас в теле процедуры сбойный код, вот оно на нем и рушится?
Я писала, все работает. И в квери аналайзере, и из-под VBA, если процедуру вызывать
Код: plaintext
cmd.CommandType = adCmdText
Весь геморрой с
Код: plaintext
cmd.CommandType = adCmdStoredProc
и заданием параметров только ради того, чтобы вернуть SCOPE_IDENTITY() со вновь созданной строки. Так что сбоит конкретно присвоение параметров под VBA, а процедура вполне здоровая.
чет я не понял?
а где тогда в вашей процедуре объявление выходного параметра?
мож все таки код сюда и код сп тоже. а то вы создаете какие-то тупиковые ситуации,мне так кажеться.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027842
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIGТак навскидку
Set prm = cmd.CreateParameter("AlongOperationID", ...)
Уже неправильно
надо
Код: plaintext
1.
2.
3.
4.
...varAlongOperationID As Long
...
Set prm = cmd.CreateParameter("@AlongOperationID", adInteger, adParamInput,  4 , varAlongOperationID)
cmd.Parameters.Append prm
cmd.Execute
Ну не знаю.
У меня все заработало, когда я завела присвоение всех предыдущих необязательных параметров. Похоже, SQL'ю глубоко по барабану, с каким именем идет параметр из mdb, он их принимает по типу и по порядку. По крайней мере в данный момент имена я могу в первую позицию впечатывать любые, это вообще ни на что не влияет. Просто, если из пяти необязательных параметров я задаю четверный, при таком способе выполнения процедуры мне надо задать и первых три параметра, чтобы четвертый пришелся на место четвертого.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027853
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_ТПохоже, SQL'ю глубоко по барабану, с каким именем идет параметр из mdb, он их принимает по типу и по порядку.
Угу. По крайней мере в старых версиях ADO так и было. Кстати, а ADODB какое используется?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027861
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeiKа где тогда в вашей процедуре объявление выходного параметра?
мож все таки код сюда и код сп тоже. а то вы создаете какие-то тупиковые ситуации,мне так кажеться. Было опущено за очевидностью.
Вот так все работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    cnn.Open
    
    Set cmd.ActiveConnection = cnn
    cmd.CommandText = "MakeInvNP_new"
    cmd.CommandType = adCmdStoredProc
  
    Set prm = cmd.CreateParameter("Return", adInteger, adParamReturnValue)
    cmd.Parameters.Append prm
    Set prm = cmd.CreateParameter("pDepID", adInteger, adParamInput, adEmpty, pDepID)
    cmd.Parameters.Append prm
    Set prm = cmd.CreateParameter("pInvTypeID", adInteger, adParamInput, adEmpty, pInvTypeID)
    cmd.Parameters.Append prm
    Set prm = cmd.CreateParameter("pStoreID", adInteger, adParamInput, adEmpty, varStoreID)
    cmd.Parameters.Append prm
    Set prm = cmd.CreateParameter("AlongOperationID", adDouble, adParamInput, adEmpty, varAlongOperationID)
    cmd.Parameters.Append prm
    cmd.Execute
Причем, что писать в кавычках, совершенно неважно.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027874
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный Ольга_ТПохоже, SQL'ю глубоко по барабану, с каким именем идет параметр из mdb, он их принимает по типу и по порядку.
Угу. По крайней мере в старых версиях ADO так и было. Кстати, а ADODB какое используется?"У вас мигрень бывает?" - "Ах, у нас никто не бывает!"
Понятия не имею. Первый раз слышу, что там есть версии)))
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027908
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_ТПохоже, SQL'ю глубоко по барабану, с каким именем идет параметр из mdb, он их принимает по типу и по порядку.
Это Вам так кажется :)
И происходит это именно потому, что имена ваших параметров в АДО не соответствуют именам в ХП
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027915
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG Ольга_ТПохоже, SQL'ю глубоко по барабану, с каким именем идет параметр из mdb, он их принимает по типу и по порядку.
Это Вам так кажется :)
И происходит это именно потому, что имена ваших параметров в АДО не соответствуют именам в ХП
Нет, VIG, ты не прав.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027932
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный (c)VIG Ольга_ТПохоже, SQL'ю глубоко по барабану, с каким именем идет параметр из mdb, он их принимает по типу и по порядку.
Это Вам так кажется :)
И происходит это именно потому, что имена ваших параметров в АДО не соответствуют именам в ХП
Нет, VIG, ты не прав.
Ну, незнаю. Может быть у меня АДО неправильный
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33027955
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIGНу, незнаю. Может быть у меня АДО неправильный
Код: plaintext
1.
2.
CREATE PROCEDURE dbo.sp1 (@prm1 int, @prm2 int)
AS 
SELECT @prm1 AS Expr1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function test()
    Dim cmd As ADODB.Command
    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = CurrentProject.Connection
    cmd.CommandText = "sp1"
    cmd.CommandType = adCmdStoredProc

    ' Меняем следующие две строчки местами и смотрим на результат
    cmd.Parameters.Append cmd.CreateParameter("@prm1", adInteger, adParamInput,  4 ,  1 )
    cmd.Parameters.Append cmd.CreateParameter("@prm2", adInteger, adParamInput,  4 ,  2 )

    Debug.Print cmd.Execute()( 0 )

End Function
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028101
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все-таки она вертится!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Function test()
    Dim cmd As ADODB.Command
    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = CurrentProject.Connection
    cmd.CommandText = "sp1"
    cmd.CommandType = adCmdStoredProc
    cmd.NamedParameters = True

    ' Меняем следующие две строчки местами и смотрим на результат
  
cmd.Parameters.Append cmd.CreateParameter("@prm1", adInteger, adParamInput,  4 ,  1 )
    cmd.Parameters.Append cmd.CreateParameter("@prm2", adInteger, adParamInput,  4 ,  2 )

    Debug.Print cmd.Execute()( 0 )

End Function
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028143
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adEmpty=0 а надо указать размер в байтах adInteger вот этого типа данных.
integer занимает 4 байта, и указать надо 4. или лучше опустить параметр, ADO сама все прекрасно знает и без вашей помощи :)
в кавычках писать надо имя параметра это факт.

хоорошо допишу через refresh....
..........
cmd.execute
debug.print cmd.parametrs("return_value")

вот в этом параметре через refresh возвращаеться RETURN из СП.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028153
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIGИ все-таки она вертится!
Код: plaintext
1.
    cmd.NamedParameters = True

Ну я же не зря упомянул про версии
Сиё св-во только начиная с 2.6 появилось
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028170
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП (c)VIGИ все-таки она вертится!
Код: plaintext
1.
    cmd.NamedParameters = True

Ну я же не зря упомянул про версии
Сиё св-во только начиная с 2.6 появилось
Ну я же сказал что у меня АДО неправильный :)
А что, есть ниже?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028619
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это значит, у меня ниже?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028659
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_ТЭто значит, у меня ниже?
Угу.
Вообще аксес начиная с 2002-го по умолчанию версию 2.5 цепляет. Но это тоже не лечит, потому как лучше 2.8 использовать.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028675
ддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЭто значит, у меня ниже?

не значит.
эта линейка отмеряет не высоту, а уровень (совместимости).

Вы можете узнать, какая у вас на самом деле версия,
спросив об этом объект Connection.

Dim cNN as ADODB.Connection
Set cNN = NEW ADODB.Connection

Debug.Print cNN.Version
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028681
ддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП Ольга_ТЭто значит, у меня ниже?
Угу.
Вообще аксес начиная с 2002-го по умолчанию версию 2.5 цепляет. Но это тоже не лечит, потому как лучше 2.8 использовать.
что угу и кто кого не лечит?
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028691
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ддд
не значит.
эта линейка отмеряет не высоту, а уровень (совместимости).

Да, был неправ.
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028708
ддд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП2 ддд
не значит.
эта линейка отмеряет не высоту, а уровень (совместимости).

Да, был неправ.
:))
вот доложьте нам теперь - хто такой варварский код и почему случай не тот?

:)
...
Рейтинг: 0 / 0
Как назначить формат числа при вызове процедуры?
    #33028720
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял?
...
Рейтинг: 0 / 0
67 сообщений из 67, показаны все 3 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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