powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры?
25 сообщений из 67, страница 2 из 3
Как назначить формат числа при вызове процедуры?
    #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
25 сообщений из 67, страница 2 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как назначить формат числа при вызове процедуры?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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