Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
gorez
1

Stored Procedure

07.05.2008, 12:45. Показов 2821. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ, подскажите, почему не возвращаются данные из хранимой процедуры(возвращаться ведь должна переменная @out):
T-SQL
1
2
3
4
5
6
7
create procedure proc1 (@_name char)
as
declare
@out integer 
begin
select @out=count(*) from tab1 where name=@_name
end
Процедуру регистрировал через DataEnvironment, и что за ошибка:
Procedure 'proc1' expects parameter '@_name', which was not supplied
Есть ли другой способ вызывать хранимую процедуру, которая бы возвращала данные?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2008, 12:45
Ответы с готовыми решениями:

Stored Procedure
Решил поучить ADO.NET по Троелсену, в SQL Server Management Studio создал БД "AutoLot" и добавил...

Неполадка по stored procedure
Работа в базе данных Northwind. Нужно создать процедуру, которая получит код покупателя из...

Просмотр Stored Procedure
Как запросом просмотреть содержимое(source) Stored Procedure?

Could not find stored procedure 'c'
Доброго времени суток. Можете помочь и тыкнуть лицом в ошибку? При обращении к хранимой процедуре...

16
0 / 0 / 0
Регистрация: 24.03.2008
Сообщений: 90
11.05.2008, 17:08 2
T-SQL
1
2
3
4
5
6
7
8
create procedure proc1 (@_name char)
as
declare
@out1 integer out
begin
select @out=count(*) from tab1 where name=@_name
end
return @out1
попробуйте так
0
0 / 0 / 0
Регистрация: 24.03.2008
Сообщений: 90
11.05.2008, 17:18 3
ошибочка
все @out на @out1 замените, всетаки out суж. слово
0
gorez
13.05.2008, 14:20 4
Спасибо за ответ, можно еще один вопросик: как кроме как из DataEnvironment вызывать процедуры?
gorez
13.05.2008, 16:05 5
Alex Lee, кстати не работает
нельзя писать output в теле объявления переменных
может еще что-нибудь подскажешь?
0 / 0 / 0
Регистрация: 24.03.2008
Сообщений: 90
13.05.2008, 16:36 6
А SQL какой ? У меня 2000. Ну чичас еще попробую
0
0 / 0 / 0
Регистрация: 24.03.2008
Сообщений: 90
13.05.2008, 16:46 7
T-SQL
1
2
3
4
5
6
7
create procedure proc1 (@_name char)
@out1 int out
as
begin
select @out1=count(*) from tab1 where name=@_name
end
return @out1
0
0 / 0 / 0
Регистрация: 24.03.2008
Сообщений: 90
13.05.2008, 17:49 8
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Global cmd As ADODB.Command
 
Set cn = New ADODB.Connection
    cn.ConnectionString = 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=lex;Initial Catalog=aststoreb;Data Source=SDATA1'
    cn.Open
    
Set cmd = New ADODB.Command
    cmd.ActiveConnection = cn
    cmd.CommandText = 'managers' --yfpdfybt cnjhtl ghjwtlehs
    cmd.CommandType = adCmdStoredProc
    cmd.Execute
что то типа такого, давно не пользовался VB но помню что код работал

первая строка в модуле объявляется
у вас другие параметры могут быть
0
gorez
13.05.2008, 20:14 9
Слушай, если не сложно, поясни пожалуйста
Visual Basic
1
2
3
4
....
cmd.CommandText = 'managers' --yfpdfybt cnjhtl ghjwtlehs
cmd.CommandType = adCmdStoredProc
cmd.Execute
-что такое CommandText и 'managers'?
-и как объект типа Command знает какую именно запускать процедуру?
-если managers - название процедуры, то где указываються ее параметры?
0 / 0 / 0
Регистрация: 24.03.2008
Сообщений: 90
14.05.2008, 11:02 10
cmd.CommandText = 'managers' --название sp
cmd.CommandType = adCmdStoredProc -- объявляем что CommandText это sp
cmd2.Parameters(1).Value='ваши параметры' --входные параметры, но вам --они не нужны в вашей sp

cmd.Execute --выполнение sp
0
gorez
19.05.2008, 16:45 11
Если не сложно, напиши как для этой процедуры
T-SQL
1
2
3
4
5
6
7
8
create procedure proc1 
@_name char,
@out1 int out
as
begin
select @out1=count(*) from tab1 where name=@_name
end
return @out1
(для параметров @_name и @out1) будет выглядеть
cmd2.Parameters(1).Value=....
gorez
25.05.2008, 18:21 12
Alex Lee , так ты напишешь или нет?
5 / 5 / 0
Регистрация: 20.02.2008
Сообщений: 141
25.05.2008, 19:47 13
BOL
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Dim cn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim fldloop As ADODB.Field
Dim param1 As Parameter, param2 As Parameter, param3 As Parameter
Dim provStr As String
Dim royalty As Variant
    
Private Sub spStart()
 
' Connect using the SQLOLEDB provider.
cn.Provider = 'sqloledb'
 
' Specify connection string on Open method.
provStr = 'Server=MyServer;Database=pubs;Trusted_Connection=yes'
cn.Open provStr
 
' Set up a command object for the stored procedure.
Set cmd.ActiveConnection = cn
cmd.CommandText = 'myProc'
cmd.CommandType = adCmdStoredProc
 
' Set up a return parameter.
Set param1 = cmd.CreateParameter('Return', adInteger, adParamReturnValue)
cmd.Parameters.Append param1
            
' Set up an output parameter.
Set param2 = cmd.CreateParameter('Output', adInteger, adParamOutput)
cmd.Parameters.Append param2
  
' Set up an input parameter.
Set param3 = cmd.CreateParameter('Input', adInteger, adParamInput)
cmd.Parameters.Append param3
royalty = Trim(InputBox('Enter royalty:'))
param3.Value = royalty
 
' Execute command, and loop through recordset, printing out rows.
Set rs = cmd.Execute
 
Dim i As Integer
While Not rs.EOF
    For Each fldloop In rs.Fields
        Debug.Print rs.Fields(i)
        i = i + 1
    Next fldloop
    Debug.Print ''
    i = 0
    rs.MoveNext
Wend
 
' Need to close recordset before getting return 
' and output parameters.
rs.Close
 
Debug.Print 'Program ended with return code: ' & Cmd(0)
Debug.Print 'Total rows satisfying condition: ' & Cmd(1)
cn.Close
0
gorez
26.05.2008, 09:55 14
ну ты мастер, спасибо огромное!!!
gorez
26.05.2008, 14:25 15
только что такое Debug.Print ......?
5 / 5 / 0
Регистрация: 20.02.2008
Сообщений: 141
26.05.2008, 14:40 16
Это пример для VB. Debug.Print - отладочный вывод данных

В ASP используйте Response (или вообще не используйте, если процедура не возвращает рекордсет, а только параметры)
0
5 / 5 / 0
Регистрация: 20.02.2008
Сообщений: 141
26.05.2008, 14:41 17
Это пример для VB. Debug.Print - отладочный вывод данных

В ASP используйте Response (или вообще не используйте, если процедура не возвращает рекордсет, а только параметры)
0
26.05.2008, 14:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2008, 14:41
Помогаю со студенческими работами здесь

SELECT in Stored Procedure
U menya takaya problema: est' tablica 10,000,000 zapisey s clasternim index-om, imeetsya khranimaya...

Could not find stored procedure
Error Code = 80040e14 Code meaning = I Source = Microsoft OLE DB Provider for ODBC Drivers...

stored procedure int parametr
USE GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE . @author...

SQL Server Stored Procedure
Народ, подскажите, почему не возвращаются данные из хранимой процедуры(возвращаться ведь должна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru