Delphi, SQL 6.5, Stored Procs, Text (memo) parameters

How are people who use stored procedures for updating MS SQL 6.5 dealing
with text (memo) fields?
Do you have to use a seperate TQuery object just to update the memo
field because stored procs don't accept memo fields as params?  And if
you do, how do you keep the entire transaction in the same server
process (thread.)  For example the following code creates a deadlock for
me because the TQuery creates it's own process instead of using the one
in process already:
with StoredProcInsert do begin
 ParamByName('@pn').assignFieldValue(QInventory.FieldByName('pn'),QInventory.FieldByName('pn').NewValue);

 ParamByName('@curr_revision').assignFieldValue(QInventory.FieldByName('curr_revision'),QInventory.FieldByName('curr_revision').NewValue);

 If (ParamByName('@curr_revision').IsNull) then
ParamByName('@curr_revision').clear;
 if (not prepared) then Prepare;
 ExecProc;  // Stored Proc =  insert into inventory (pn, curr_revision)
values (@pn, @curr_revision)
end;
with TQueryUpdate do begin
 // update
 ParamByName('pn').assignFieldValue(QInventory.FieldByName('pn'),QInventory.FieldByName('pn').NewValue);

 ParamByName('my_memo').assignFieldValue(QInventory.FieldByName('my_memo'),QInventory.FieldByName('my_memo').NewValue);

 If (ParamByName('my_memo').IsNull) then ParamByName('my_memo').clear;
 If (not prepared) then Prepare;
 // The following line creates a new process on the server, and a
deadlock on the inventory table.
 ExecSQL; // TQuery = update inventory set my_memo = :my_memo where pn =
:pn
end;

Is there any way to get MS SQL 6.5, Stored Procs, and Text (memo)
parameters to cooperate with each other?  I have had unreliable results
with my client{*word*154}, and yet when I remove the text param, everything
works fine.