Ado + функция БД Oracle

  • Автор темы hedgehog
  • Дата начала
Статус
Закрыто для дальнейших ответов.
H

hedgehog

Гость
#1
Есть: в БД Oracle функция makeWebImage(id, height, width), пишущая во временную таблицу бинарные данные ресемплированной согласно полученным параметрам (ширине и высоте) и идентификатору исходной полноразмерной картинки и возвращающая идентификатор новой записи во временной таблице.
Необходимо: средствами ADO (скорее всего через Command) вызвать-выполнить данную функцию и получить возращаемый идентификатор для последующей загрузки в Recordset
:( Проблема: SELECT в тексте команды использовать нельзя, плз у кого были подобные ситуации или кто знает как это все рулить помогите!
 
?

????

Гость
#2
<!--QuoteBegin-hedgehog+18:09:2006, 10:59 -->
<span class="vbquote">(hedgehog @ 18:09:2006, 10:59 )</span><!--QuoteEBegin-->скорее всего через Command
[snapback]44011" rel="nofollow" target="_blank[/snapback]​
[/quote]
не обязательно.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Q: TADOQuery;
begin
Q := TADOQuery.Create(Self);

Q.Connection := ADOConnection1;
Q.SQL.Add('select makeWebImage(1, 2, 3) result from dual');

try
Q.Active := True;
ShowMessage(Q.FieldValues['RESULT']);
finally
Q.Free;
end;
end;
 
H

hedgehog

Гость
#3
а как мне это все использовать бы на ASP странице? просто нечто подобное мне в голову тоже приходило, а вот с какой стороны в ASP подступиться - не знаю :(

<!--QuoteBegin-????+18:09:2006, 13:48 -->
<span class="vbquote">(???? @ 18:09:2006, 13:48 )</span><!--QuoteEBegin-->'select makeWebImage(1, 2, 3) result from dual'
[snapback]44023" rel="nofollow" target="_blank[/snapback]​
[/quote]

к тому же у меня четкое условие - забыть в данном случае про SELECT
 
?

????

Гость
#4
<!--QuoteBegin-hedgehog+18:09:2006, 14:35 -->
<span class="vbquote">(hedgehog @ 18:09:2006, 14:35 )</span><!--QuoteEBegin-->забыть в данном случае про SELECT
[snapback]44024" rel="nofollow" target="_blank[/snapback]​
[/quote]
begin
:result := MakeWebImage:)id, :height, :width);
end;


просто bind'ишь необходимые параметры и получаешь result
 
H

hedgehog

Гость
#5
боюсь показаться совсем тормозом, но подойду к задаче с другой стороны: вот такой код ASP-страницы у меня вполне работал и я был доволен.

Код:
<%@ Language="JScript" %>
<% 
Response.ContentType = "image/jpeg";

var id = Request.QueryString("id");
var w = Request.QueryString("w");
var h = Request.QueryString("h");
var new_id;

var Conn = Server.CreateObject("ADODB.Connection");
Conn.Open(<connection_string>);
var Cmd = Server.CreateObject("ADODB.Command");
Cmd.ActiveConnection = Conn;
Cmd.CommandText = "SELECT makeWebImage( ? , ? , ? ) img_id FROM dual;"
Cmd.CommandType = 1; // adCmdText
// adInteger = 3; adParamInput = 1
Cmd.Parameters.Append(Cmd.CreateParameter("image_in", 3, 1, 0, id));
Cmd.Parameters.Append(Cmd.CreateParameter("max_height", 3, 1, 0, h));
Cmd.Parameters.Append(Cmd.CreateParameter("max_width", 3, 1, 0, w));
var Rs = Server.CreateObject("ADODB.Recordset");
Rs = Cmd.Execute();
new_id = Rs("img_id").Value
Rs.Close();
Conn.Close();

/*
дальше получение самой ресемплированной картинки
*/

%>
Но ситуация такова, что я в этом проекте осуществляю только извлечение и обработку данных. И мне было поставлено исходное условие, что эта функция makeWebImage не может выполняться внутри SELECTа (причин понять я толком не могу)
В общем так формулирую: как мне в рамках ASP-страницы средствами ADO, не используя при этом в запросе SELECT, передать функции, производящей некие изменения в БД, необходимые параметры, выполнить ее и получить возвращаемое ею значение для дальнейшего использования?
 
Статус
Закрыто для дальнейших ответов.