powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с CreateParameter
9 сообщений из 9, страница 1 из 1
Помогите, пожалуйста, с CreateParameter
    #37168622
Papillony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Очень нужна помошь при создании макроса в 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
Помогите, пожалуйста, с CreateParameter
    #37175528
Papillony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос все еще остается актуальным.. Неужели никто не в курсе?:(
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с CreateParameter
    #37175552
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Помогите, пожалуйста, с CreateParameter
    #37175560
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лучше покажите код вашей ХП analiz , достаточно заголовка с определением параметров
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с CreateParameter
    #37175684
Papillony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объявление параметров в процедуре так выглядит:
@real_code varchar(32),@t int, @from_date varchar(8),@end_date varchar(8),@sc char, @mv float
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с CreateParameter
    #37175695
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
объявите все параметры:

Код: 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
Помогите, пожалуйста, с CreateParameter
    #37175708
Papillony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь! Я попробую.
а prm1 можно ведь удалить, если он не используется дальше в самой процедуре?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с CreateParameter
    #37175726
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, нужно передавать только те параметры, которые объявлены в самой процедуре
...
Рейтинг: 0 / 0
Помогите, пожалуйста, с CreateParameter
    #37175737
Papillony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One, все ясно. Спасибо!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, с CreateParameter
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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