Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с CreateParameter / 9 сообщений из 9, страница 1 из 1
16.03.2011, 19:24
    #37168622
Papillony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
Добрый день!
Очень нужна помошь при создании макроса в excel.
При запуске появляется ошибка: [Merant] [ODBC Sybase ASE driver] Default parameters values are not supported by this database.

Код выглядит так:
Код: plaintext
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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
Private Sub CommandButton1_Click()
    On Error GoTo Errs
    Dim dsn As String
    If Msk.Value = True Then dsn = "Msk" Else dsn = "Msk2"
    
    Dim oCon As New ADODB.Connection
    Dim oCom As New ADODB.Command
    Dim orec As New ADODB.Recordset
    Dim obook As Workbook, osheet As Worksheet
    Dim prm1 As ADODB.Parameter
    Dim real_code As ADODB.Parameter
    Dim from_date As ADODB.Parameter
    Dim end_date As ADODB.Parameter
    Dim db As New Data_base
    
    Set obook = ActiveWorkbook
    oCon.ConnectionString = "dsn=" & dsn & "; Uid=pirogov ;Pwd=123456"
    oCon.Open
    
    With oCom
        .ActiveConnection = oCon
        .CommandType = adCmdStoredProc
        .CommandTimeout =  1800 
        .CommandText = "analiz"
        Set prm1 = .CreateParameter("i", adInteger, adParamInput,  10 , CLng(id))
        .Parameters.Append prm1
        Set real_code = .CreateParameter("@real_code", adInteger, adParamInput, ,  10 )
        .Parameters.Append real_code
        Set from_date = .CreateParameter("@from_date", adDate, adParamInput, ,  10 )
        .Parameters.Append from_date
        Set end_date = .CreateParameter("@end_date", adDate, adParamInput, ,  10 )
        .Parameters.Append end_date
        .Execute
    End With
    
    Set osheet = obook.Worksheets.Add
    osheet.Name = "Статистика"
    
    ''' Статистика
    orec.ActiveConnection = oCon
    orec.Open oCom
    'Set orec = orec.NextRecordset
    db.RecToSheet osheet, orec

    Set db = Nothing
    Set oCon = Nothing
    Set oCom = Nothing
    Set orec = Nothing
    
    Set obook = Nothing
    Set osheet = Nothing
    
    Unload UserForm1
    
    Exit Sub
Errs:
    MsgBox Err.Description, vbCritical, "Облом"
End Sub

Private Sub CommandButton2_Click()
    Unload UserForm1
End Sub

Private Sub Frame1_Click()

End Sub

Private Sub UserForm_Initialize()
    Msk.Value = True
    real_code.SetFocus
    from_date.SetFocus
    end_date.SetFocus
End Sub
Честно говоря, не знаю, что такое prm1, но удалить боюсь, вдруг что испорчу. Я просто добавила значения, которые вводятся в мою форму:
real_code выглядит так: 14/8715, А19 или В17,В18
from_date, end_date даты, вводятся в формате 2010-01-01, например.

Подскажите, пожалуйста, что не так и стоит ли удалить этот prm1, может он еще где-то дальше использоваться?
...
Рейтинг: 0 / 0
21.03.2011, 15:02
    #37175528
Papillony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
Вопрос все еще остается актуальным.. Неужели никто не в курсе?:(
...
Рейтинг: 0 / 0
21.03.2011, 15:09
    #37175552
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
Код: plaintext
1.
2.
        Set from_date = .CreateParameter("@from_date", adDate, adParamInput, ,  10 )
        .Parameters.Append from_date
        Set end_date = .CreateParameter("@end_date", adDate, adParamInput, ,  10 )

там дата должна быть (тип Date)
...
Рейтинг: 0 / 0
21.03.2011, 15:11
    #37175560
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
лучше покажите код вашей ХП analiz , достаточно заголовка с определением параметров
...
Рейтинг: 0 / 0
21.03.2011, 16:05
    #37175684
Papillony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
Объявление параметров в процедуре так выглядит:
@real_code varchar(32),@t int, @from_date varchar(8),@end_date varchar(8),@sc char, @mv float
...
Рейтинг: 0 / 0
21.03.2011, 16:10
    #37175695
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
объявите все параметры:

Код: plaintext
p.Append cmd.CreateParameter("RETURN_Value", adInteger, adParamReturnValue)
+ все что ниже в таком же порядке

@real_code varchar(32)
@t int
@from_date varchar(8)
@end_date varchar(8)
@sc char
@mv float
...
Рейтинг: 0 / 0
21.03.2011, 16:13
    #37175708
Papillony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
Спасибо за помощь! Я попробую.
а prm1 можно ведь удалить, если он не используется дальше в самой процедуре?
...
Рейтинг: 0 / 0
21.03.2011, 16:16
    #37175726
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
да, нужно передавать только те параметры, которые объявлены в самой процедуре
...
Рейтинг: 0 / 0
21.03.2011, 16:19
    #37175737
Papillony
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, с CreateParameter
Konst_One, все ясно. Спасибо!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с CreateParameter / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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