(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 

Конференция "Microsoft"

Обсуждение вопросов, связанных с компанией Microsoft, ее продуктами MS SQL Server, MS Windows, MS Office и др.

 
 
Добавить сообщение »

Тема: Запуск SQL Server stored procedure с параметрами в VBA

Автор:  Karen Nazaryan Дата: 11.04.2008 16:20
Привет всем.

У меня проблема. Я никак не могу вызивать stored procedure-у SQL Server-а с параметрами в VBA.

Вот процедура:


код SQL
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45: CREATE PROCEDURE dbo.spRetrieveOutwardsAmountsByPeriond @strDateStart char(6), @strDateEnd char(6)
------------------------------------------------------------------------
/*@Date DDMMYY*/
AS
------------------------------------------------------------------------
BEGIN
------------------------------------------------------------------------
SET DATEFORMAT dmy
------------------------------------------------------------------------
TRUNCATE TABLE dbo.T_BM_OUTWARDS
------------------------------------------------------------------------
DECLARE @dtCurrent datetime
DECLARE @dtEnd datetime

DECLARE @strCurrent char(6)
------------------------------------------------------------------------
SET @dtCurrent = cast ( substring( @strDateStart, 1, 2)
+ '-'
+ substring( @strDateStart, 3, 2)
+ '-20'
+ substring( @strDateStart, 5, 2)
as datetime )
SET @dtEnd = cast ( substring( @strDateEnd, 1, 2)
+ '-'
+ substring( @strDateEnd, 3, 2)
+ '-20'
+ substring( @strDateEnd, 5, 2)
as datetime )
------------------------------------------------------------------------
WHILE DATEDIFF( Day, @dtCurrent, @dtEnd ) >= 0
BEGIN
------------------------------------------------------------------------
SET @strCurrent = RIGHT( CAST( 100 + Day(@dtCurrent ) as char(3)), 2)
+ RIGHT( CAST( 100 + Month(@dtCurrent ) as char(3)), 2)
+ RIGHT( CAST( Year(@dtCurrent ) as char(4)), 2)
------------------------------------------------------------------------
EXEC dbo.spRetrieveOutwardsAmounts @strCurrent
------------------------------------------------------------------------
SET @dtCurrent = DATEADD( Day, 1, @dtCurrent)
------------------------------------------------------------------------
END
------------------------------------------------------------------------
END
------------------------------------------------------------------------
GO




А вот мой код в VBA


код Visual Basic
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43: '----------------------------------------------------------------
Const m_cadOpenStatic = 3
Const m_cadLockOptimistic = 3
Const m_cadCmdText = &H1
'----------------------------------------------------------------
Dim m_cnnSQL As Object
Dim m_cmdSQL As Object
'----------------------------------------------------------------
...
Dim strConnection As String
'----------------------------------------------------------------
strConnection = "Provider=SQLOLEDB.1;" & _
"Password=" & ThisWorkbook.Worksheets("Connection").Range("cellPassword") & ";" & _
"Persist Security Info=True;" & _
"User ID=" & ThisWorkbook.Worksheets("Connection").Range("cellUserID") & ";" & _
"Initial Catalog=" & ThisWorkbook.Worksheets("Connection").Range("cellInitialCatalog") & ";" & _
"Data Source=" & ThisWorkbook.Worksheets("Connection").Range("cellDataSource")
'----------------------------------------------------------------
Set m_cnnSQL = CreateObject("ADODB.Connection")
m_cnnSQL.Open strConnection
'----------------------------------------------------------------
Const adCmdStoredProc = 4
Const adVarChar = 200
Const adChar = 129
Const adParamInput = 1
'----------------------------------------------------------------
Dim m_cmdProc As Object

Set m_cmdProc = CreateObject("ADODB.Command")
'----------------------------------------------------------------
With m_cmdProc
.ActiveConnection = m_cnnSQL
.CommandType = adCmdStoredProc 'adCmdText
.CommandTimeout = 60000 ' 10 minutes (use 0 for indefnite)
.Prepared = False ' not to precompile the command
.CommandText = "spRetrieveOutwardsAmountsByPeriond" ' stored procedure name
End With
'----------------------------------------------------------------
m_cmdProc.Parameters("@strDateStart").Value = "010408"
m_cmdProc.Parameters("@strDateEnd").Value = "300408"
'----------------------------------------------------------------
m_cmdProc.Execute
'----------------------------------------------------------------




Я пытался делать это с разными способами, в частности:

код Visual Basic
1:
2:
3:
4:
5:
6:
7:

Set objParam1 = m_cmdProc.CreateParameter
objParam1.Type = adChar
objParam1.Name = "@strDateStart"
objParam1.Size = 6
objParam1.Direction = adParamInput
objParam1.Value = "010408"
m_cmdProc.Parameters.Append objParam1






Никак!

Надеюсь на вашу помощь.
Ответить на сообщение »
 

Добавить сообщение »

 Распечатать »
 Правила публикации »
   
 Рекомендовать »  
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft Windows Professional 10, Электронный ключ
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Business Basic (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Новости мира 3D-ускорителей
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Выбор лучшего онлайн казино (18)
Очень важным критерием для составления рейтинга являются честные отзывы клиентов о казино. Люди...
 
Нормальные казино в 2021 году (23)
После долгих поисков все таки смог найти хорошие игровухи, хотя и ушла куча времени, пока я...
 
Онлайн казино ПокерДом (7)
Поспешите начинать зарабатывать играя в онлайн казино ПокерДом...
 
Играть в Книгу мертвых (4)
Тайные гробницы древнего Египта, богатства и забытые мумии фараонов - это все вы можете увидеть...
 
Поиск рабочих зеркал МарафонБет (6)
На сегодняшний день, просторы интернета позволяют нам легко найти зеркало на Марафон для входа в...
 
 
 



    
rambler's top100 Rambler's Top100