Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / выполнение хп из VB6 / 18 сообщений из 18, страница 1 из 1
17.02.2005, 14:54:42
    #32921096
igric
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Как из Vb6 выполнить хранимую процедуру или запрос(не селект, а на добавление, удаление) используя ADO
...
Рейтинг: 0 / 0
17.02.2005, 15:05:50
    #32921129
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public CmDB As ADODB.Command
...
Set CmDB = New ADODB.Command
CmDB.ActiveConnection = CnDB'присвоили открытый ранее Connection
...
    With CmDB
        .CommandText = "zTrd"
        .CommandType = adCmdStoredProc
        .Parameters.Refresh
        Set zFind = .Execute(, FindID)
    End With
подробности в c:\WINDOWS\Help\ADO210.CHM
...
Рейтинг: 0 / 0
17.02.2005, 15:08:29
    #32921135
siatl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
С помощью объекта ADODB.Command
(см. ссылку Calling a Stored Procedure with a Command )
...
Рейтинг: 0 / 0
17.02.2005, 15:34:07
    #32921233
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
а чем плох метод

Код: plaintext
CnDB.Execute "строка запроса"  'CnDB открытый ранее Connection
...
Рейтинг: 0 / 0
17.02.2005, 15:40:57
    #32921266
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
2 HandKot
речь идёт о хранимых процедурах
...
Рейтинг: 0 / 0
17.02.2005, 15:59:59
    #32921333
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Execute Method (ADO Connection)

Executes the specified query, SQL statement, stored procedure , or provider-specific text

Код: plaintext
connection.Execute CommandText, RecordsAffected, Options 
где Options
adCmdStoredProc 4 Evaluates CommandText as a stored procedure name.

Хотя вроде и без Опции нормально работает
...
Рейтинг: 0 / 0
17.02.2005, 16:23:19
    #32921392
igric
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
спасибо все помогли, нужно выполнять как хп так и запрос
...
Рейтинг: 0 / 0
17.02.2005, 16:23:23
    #32921393
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
igricКак из Vb6 выполнить хранимую процедуру или запрос(не селект, а на добавление, удаление) используя ADOВот пример из активно эксплуатируемой программы:
Код: 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.
Private Sub frmORG_ModifyOrgAttr(mdfAttr() As String)
Dim cnn As New ADODB.Connection
cnn.ConnectionString = ActConn
cnn.Open
    Dim synCmd As New ADODB.Command
    On Error GoTo Err_Handler
    With synCmd
        Set .ActiveConnection = cnn
        If .ActiveConnection Is Nothing Then
            MsgBox "Сервер недоступен." & vbCrLf & _
                   "Измененное наименование не сохранено", _
                   vbExclamation + vbOKOnly, "Запись изменённого наименования"
            Exit Sub
        End If
        .CommandType = adCmdStoredProc
        .CommandText = "sp_S_ORG_upd"
        .Parameters.Refresh
    End With
    '    Procedure sp_S_ORG_upd /*Procedure_Name*/
    '      @KOrg                T_Key       1
    '    , @KClient             T_Key = 0   2
    '    , @NmOrg varchar(30) = NULL        3
    '    , @TownOrg T_Town    = NULL        4
    '    , @AdresOrg varchar(20) = NULL     5
    '    , @KBank T_Key       = 0           6
    '    , @RS varchar(20)    = NULL        7
    '    , @OKPO varchar(15)  = NULL        8
    '    , @NSPR varchar(18)  = NULL        9
    '    , @IPN varchar(12)   = NULL        10
    '---------------------------------------------------
        synCmd( 1 ).Value = CLng(mdfAttr( 0 ))  '1-KOrg int(4)
        synCmd( 2 ).Value =  0                  '2-KClient             T_Key = 0
        synCmd( 3 ).Value = mdfAttr( 1 )        '3-NmOrg varchar(30)
        synCmd( 4 ).Value = mdfAttr( 2 )        '4-TownOrg T_Town    = NULL
        synCmd( 5 ).Value = mdfAttr( 3 )        '5-AdresOrg varchar(20) = NULL
        synCmd( 6 ).Value =  0                  '6-KBank T_Key       = 0
        synCmd( 7 ).Value = mdfAttr( 4 )        '7-RS varchar(20)    = NULL
        synCmd( 8 ).Value = mdfAttr( 5 )        '8-OKPO varchar(15)  = NULL
        synCmd( 9 ).Value = mdfAttr( 7 )        '9-NSPR varchar(18)  = NULL
        synCmd( 10 ).Value = mdfAttr( 6 )       '10-IPN varchar(12)  = NULL

        synCmd.Execute
        GoTo Exit_Sub
    '---------------------------------------------------
Err_Handler:
        If Err.Number <>  0  Then
                MsgBox "Ошибка №" & Err.Number & " " & Err.Description
        End If
        If synCmd.ActiveConnection.Errors.Count >  0  Then
            Dim myErr As Error
            For Each myErr In synCmd.ActiveConnection.Errors
                MsgBox "Ошибка №" & myErr.Number & " " & myErr.Description
            Next myErr
        End If
        Err.Clear
Exit_Sub:
        On Error GoTo  0 
        Set cnn = Nothing
End Sub
...
Рейтинг: 0 / 0
01.04.2005, 12:37:40
    #32993059
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Помогите пожалуйста. Откуда эта ошибка?
...
Рейтинг: 0 / 0
01.04.2005, 12:39:03
    #32993066
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Всё делаю, как Processor описал. Вылазит эта проблема. Причем, я по разному пробовал.
...
Рейтинг: 0 / 0
01.04.2005, 13:30:37
    #32993233
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
а ты в какую базу коннектишься?
может у тебя акцесс?
...
Рейтинг: 0 / 0
01.04.2005, 17:06:25
    #32994043
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Konst_Oneа ты в какую базу коннектишься?
может у тебя акцесс?

Да нет SQL Server 2000 SP3
...
Рейтинг: 0 / 0
01.04.2005, 18:00:36
    #32994175
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
а запрос пробовали в Query Analezer прогнать?
может проблема в самом запросе?

вот что есть по ошибке: -2147217900 The command contained one or more errors
...
Рейтинг: 0 / 0
06.04.2005, 09:15:16
    #32999411
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
HandKotа запрос пробовали в Query Analezer прогнать?
может проблема в самом запросе?

вот что есть по ошибке: -2147217900 The command contained one or more errors

Да нет, все нормально из QA запускается. Мало того, делаю dts, ЗАГОНЯЮ В РАСПИСАНИЕ, и всё работает. Проблема с вызовом из VB, ASP...
...
Рейтинг: 0 / 0
06.04.2005, 10:11:30
    #32999549
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
проблема возможно из-за коннекшена
вот кусок кода для открытия конекшена у меня

Код: 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.
Public Function SystemLogin(Optional blnForce As Boolean = False) As Boolean
    Dim strCN As String
    Dim oDataLink As New MSDASC.DataLinks
    
    SystemLogin = True

    On Error GoTo EH
    
   
    If cn Is Nothing Then Set cn = New ADODB.Connection
    
    If cn.State = adStateOpen Then cn.Close
    cn.Provider = "SQLOLEDB"
    cn.IsolationLevel = adXactRepeatableRead
    cn.Properties("Prompt").Value = adPromptCompleteRequired
    cn.CursorLocation = adUseClient
    
    strCN = ConnectionString
    
    If strCN = "" Then
        blnForce = True
    Else
        cn.ConnectionString = strCN
    End If
    
    If blnForce Then
        oDataLink.PromptEdit cn
    End If
    
    cn.Open
end function

либо нет прав доступа на базу для пользователя
...
Рейтинг: 0 / 0
06.04.2005, 13:55:38
    #33000461
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Проблема решилать вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset

cn.Provider = "sqloledb"
cn.Properties("Data Source").Value = "myserver"
cn.Properties("Initial Catalog").Value = "mydb"
cn.Properties("Integrated Security").Value = "SSPI"

cn.Open

cmd.ActiveConnection = cn
cmd.CommandText = "myproc"
cmd.CommandType = adCmdStoredProc

DoEvents
Set rs = cmd.Execute


Я так понял - это проблемы с авторизацией SQL сервера
Посмотрел через Profiler - там прописан в таком варианте имя пользователя Windows.

Даже SA не пропускает
...
Рейтинг: 0 / 0
06.04.2005, 14:32:37
    #33000592
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
значит у тебя сервер стоит только с виндусовой авторизацией
...
Рейтинг: 0 / 0
07.04.2005, 09:46:40
    #33001873
S. Fedorenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выполнение хп из VB6
Konst_Oneзначит у тебя сервер стоит только с виндусовой авторизацией
не фига. я в asp ещё делаю кое-что, так там строка инициализации конкретного юзера прописывает и всё работает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / выполнение хп из VB6 / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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