powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запуск sp при помощи RunSQL
19 сообщений из 19, страница 1 из 1
запуск sp при помощи RunSQL
    #32846643
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здраствуйте,
подскажите плз, почему не работает в аксесе (по крайней мере у меня)

SQL = "EXEC upr_LegalSoftRes @softName = '" & softName & "', @userName = '" & userName & "'"
DoCmd.RunSQL (SQL)

если в кверианалайзере все ок...

а

DoCmd.RunSQL "EXEC upr_UserInfo @usrName = '" & cUsers.Text & "'"
работает..
тоесть с одним параметром работает с двумя нет ?!?

спасибо:)
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846668
11111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем стока кавычек то
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846682
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Покажите пожалуйста upr_LegalSoftRes
2) Для чего передавать userName если SQL-сервер сам может определить пользователя вызвавшего хранимую процедуру функцией suser_sname()
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846688
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну как, " EXEC upr_LegalSoftRes @softName = ' " & softName & " ' ...
"string" & variable & "string"
или как?
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846694
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1)
CREATE PROCEDURE [upr_LegalSoftRes]
@softName nvarchar(255)='',
@userName nvarchar(150)=''
AS
DECLARE @client_id nvarchar(4)
SET @client_id = (SELECT client_id FROM v_Users WHERE v_Users.[Computer Description] = @userName)

IF EXISTS(SELECT name FROM sysobjects WHERE name = 'inf_LegalSoftRes' AND type = 'U')
BEGIN

IF NOT EXISTS(SELECT ProductNameShort, [Computer Description]
FROM inf_LegalSoftRes
WHERE inf_LegalSoftRes.ProductNameShort = @softName
AND inf_LegalSoftRes.[Computer Description] = @userName)
BEGIN
INSERT INTO inf_LegalSoftRes (client_id,
ProductNameShort,
[Computer Description])
VALUES (@client_id, @softName, @userName)


END

END
2) userName ето переменная
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846699
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможноя я не понимаю, но Вы обращаетесь к SQL-серверу, а RunSQL применим только к текущей БД ( This method only applies to Microsoft Access databases (.mdb). ) и использоваться могут только INSERT INTO, DELETE, SELECT...INTO, UPDATE, CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, or DROP INDEX
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846713
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно сохранить в mdb-файле запрос, который бы обращался бы к ХП на сервере и запускть запрос
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846716
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но почему тогда работает с одним параметром?

подскажите тогда как запускать хп из аксцеса если можно ...
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32846722
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл сказать, ето адп, сори
и помоему запрос ето тот же RunSql нет?
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847046
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Connection.Execute
2. Adodb.Command

Первый есть у текущего проекта - CurrentProject или можно создать самому. Второй удобен при возвращении параметров ХП.
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847134
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно и так (вариация на тему)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function Passing(Position As String, PName As String) As Boolean
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Set cnn = CurrentProject.Connection
Passing = cnn.Execute("dbo.passing_users @Position='" & Replace(Position, Chr( 39 ), Chr( 34 )) & "' ,@Pname='''" & Replace(PName, Chr( 39 ), Chr( 34 )) & "'''").Fields( 0 )
Set cnn = Nothing
End Function
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847197
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaА можно и так (вариация на тему)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function Passing(Position As String, PName As String) As Boolean
Dim cnn As ADODB.Connection
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Set cnn = CurrentProject.Connection
Passing = cnn.Execute("dbo.passing_users @Position='" & Replace(Position, Chr( 39 ), Chr( 34 )) & "' ,@Pname='''" & Replace(PName, Chr( 39 ), Chr( 34 )) & "'''").Fields( 0 )
Set cnn = Nothing
End Function

гм - а Command на фига ?
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847203
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Proga
Замечательная функция, а почему бы в ней ещё не объявить все переменные из Adodb?:)

Интересно, на какую тему эта вариация?:)
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847328
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
искал искал и понял, что для моето RunSQL проблема состояла в том, что я делал:
SQL = "EXEC upr_LegalSoftRes @softName = '" & softName & "', @userName = '" & userName & "'"
DoCmd.RunSQL (SQL)
а нужно былО:
SQL = "EXEC upr_LegalSoftRes '" & softName & "', '" & userName & "'"
DoCmd.RunSQL (SQL)
тоесть без названий переменных :)
я етого не знал ибо неопытный, ... учусь ...
спасибо за советы ;)
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847416
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mastermindискал искал и понял, что для моето RunSQL проблема состояла в том, что я делал:
SQL = "EXEC upr_LegalSoftRes @softName = '" & softName & "', @userName = '" & userName & "'"
DoCmd.RunSQL (SQL)
а нужно былО:
SQL = "EXEC upr_LegalSoftRes '" & softName & "', '" & userName & "'"
DoCmd.RunSQL (SQL)
тоесть без названий переменных :)
я етого не знал ибо неопытный, ... учусь ...
спасибо за советы ;) В данном варианте могут возникнуть проблемы, если в переменных, которые подставляются в качестве параметров, будут содержатся символы типа кавычек, и длина запроса, если не ошибаюсь, будет ограничена.
Посмотрите:
http://sql.ru/forum/actualthread.aspx?tid=146597
или поищите по слову parameters:
http://sql.ru/forum/actualtopics.aspx?search=parameters&submit=%CD%E0%E9%F2%E8&bid=4
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32847780
mastermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что-то не подумал :( действительно проблема...
буду пробовать по новому ;)
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32848286
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, command нахрен не нужен, это отголоски всей программы, а в объяве переменных забыл убрать. А вам лишь бы наехать.
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32848416
Bagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--офф
ProgaДа, command нахрен не нужен, это отголоски всей программы, а в объяве переменных забыл убрать. А вам лишь бы наехать.Да ни кто не наезжает, просто уточнили (поправили), чтобы новички не спотыкались. :-)
...
Рейтинг: 0 / 0
запуск sp при помощи RunSQL
    #32848949
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Proga
Я не наезжал - просто подколол:)
И Set cnn = CurrentProject.Connection на хер не нужен:)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запуск sp при помощи RunSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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