Множественный SELECT в SQL скрипте - проблема с выборкой

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

chief, вообще-то SP, возвращаемая одновременно резалтсет и Output параметр выглядит как-то странно. Проще всего SP переписать.
Даже самый дурацкий замысел можно воплотить мастерски
chief
Сообщения: 11
Зарегистрирован: 12 авг 2004, 13:36
Контактная информация:

SP возвращает только output параметр
в скрипте она вызывается, получается значение параметра, который далее используется
и завершается все это безобразие селектом, который-то мне и нужен
chief
Сообщения: 11
Зарегистрирован: 12 авг 2004, 13:36
Контактная информация:

Могу закинуть сам скрипт если кто-то захочет посоветовать по его сути
Хотя как мне посоветовали средствами php_sybase_ct.dll это никак
не провернуть
chief
Сообщения: 11
Зарегистрирован: 12 авг 2004, 13:36
Контактная информация:

И еще вопрос. Как подавлять вывод именно резалтсетов если идет несколько селектов?
set nocount подавляет только сообщения.
Или их никак не подавить?
И что определяет резалтсет какого из этих селектов будет виден - настройки именно пхп,
модуля sybase под пхп или даже может быть sql сервера?
Можно такое, а?
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Могу закинуть сам скрипт
Боюсь по-другому суть твоей проблемы просто не понять.
Как подавлять вывод именно резалтсетов если идет несколько селектов?
Не делать двух селектов :) Как минимум union имеется.
Даже самый дурацкий замысел можно воплотить мастерски
chief
Сообщения: 11
Зарегистрирован: 12 авг 2004, 13:36
Контактная информация:

<?php


global $login;
global $password;
global $language;


$sql_logging = "

set nocount on
----------------------------------- declaration -------------------------------
declare @lan_code t_a_code_langue
declare @lan_id t_n_id
declare @res_id t_n_id
declare @lan_nom varchar(255)
declare @login t_a_login
declare @pass t_a_password
declare @encpass t_a_password

declare @lc varchar(255)
declare @li varchar(255)
declare @ri varchar(255)

---------------------------- setting the input variables ----------------------
select @lan_nom = '$language'
select @login = '$login'
select @pass = '$password'
select @encpass = ''

------------------------------ encrypting the password ------------------------

execute opa_p_rhu_g_cryptage @pass, @encpass output

------------------------------ checking if user exist -------------------------
if exists(
select 1
from opa_ress_humaine
where rhu_login = @login and rhu_password = @encpass
)
begin

------------------------------ determinating user id --------------------------
select @res_id = res_id
from opa_ress_humaine
where rhu_login = @login

----------------------------- selecting the language details ------------------
select @lan_id = lan_id, @lan_code = lan_code
from opa_langue
where lan_nom = @lan_nom

------------------------------ registering the session -------------------------
select @lc = convert(varchar(255), @lan_code)
select @li = convert(varchar(255), @lan_id)
select @ri = convert(varchar(255), @res_id)

exec ses_p_param_set 'lan_code', @lc
exec ses_p_param_set 'lan_id', @li
exec ses_p_param_set 'res_id', @ri


end

set nocount off

select ses_id
from ses_param
where ses_key = 'res_id' and ses_value = @ri
";

/********************************************************************************
*************************** SELECTS LIST OF LANGUAGES ***************************
********************************************************************************/
$sql_lst_lang = "
select lan_nom
from opa_langue";


/********************************************************************************
*************************** SELECTS PROCESS ID **********************************
********************************************************************************/
$sql_pid = "
select @@spid";
?>
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Это вот что такое?
set nocount off
select ses_id
два резалтсета сразу.

А что ты получаешь в своём первом резалтсете? Не 0 часом?
Даже самый дурацкий замысел можно воплотить мастерски
Ответить