В общем, приблизительно то я понял в какую сторону рыть, но дальше двигаться не могу, толи мозг не соображает, толи руки кривые.
Одним словом, перенёс приложеньице на клиента (чтобы отлаживать можно было), понял, что хранимую процедуру нужно вызывать немного иначе, код выглядит теперь так:
var cmd = new ActiveXObject("ADODB.Command");
var rs = new ActiveXObject("ADODB.Recordset");
cmd.ActiveConnection = "skynet";
cmd.CommandText = "FindUser";
cmd.CommandType = 4;//adCmdStoredProc;
cmd.CommandTimeout = 15;
prm = cmd.CreateParameter("p_id_user", 3, 1, 1, -1);
cmd.Parameters.Append(prm);
prm = cmd.CreateParameter("p_nophone", 129, 1, 100, "");
cmd.Parameters.Append(prm);
prm = cmd.CreateParameter("p_name", 129, 1, 50, "");
cmd.Parameters.Append(prm);
prm = cmd.CreateParameter("p_mname", 129, 1, 50, "");
cmd.Parameters.Append(prm);
prm = cmd.CreateParameter("p_lname", 129, 1, 50, "");
cmd.Parameters.Append(prm);
prm = cmd.CreateParameter("p_id_user", 3, 1, 1, -1);
cmd.Parameters.Append(prm);
prm = cmd.CreateParameter("p_id_user", 3, 1, 1, -1);
cmd.Parameters.Append(prm);
rs = cmd.Execute();
alert(rs.RecordCount); //Вот тут выходит ошибка Операция не допускается, если объект закрыт
Для общего понимания зачём все эти цифры — покажу как начинается ХП:
CREATE PROCEDURE FindUser
/*Поиск юзерофф*/
@p_id_user INT = -1,
@p_nophone varchar(100) = '', -- Номер телефона
@p_name varchar(50) = '', -- Имя
@p_mname varchar(50) = '', -- Фамилия
@p_lname varchar(50) = '', -- Отчество
@p_id_code_filials INT = -1, -- ID Филиала/РП
@p_id_code_city INT = -1 -- ID Код города
AS
SELECT ....
Что делать, гуру? Куда дальше рыть?
Еле нашёл кстати такие ресурсы как
ADO Objects and Interfaces,
DataTypeEnum и
ParameterDirectionEnum
Удивлюсь, если найду единомышленника, который хоть когда либо осиливал все эти вещи на JS