1. Utilice los procedimientos almacenados para devolver conjuntos de datos
El conjunto de datos devuelto por los procedimientos almacenados en Oracle se devuelve por los parámetros de los datos de tipo de cursor REF, y los parámetros que devuelven los datos deben ser de tipo o tipo de tipo.
Dado que el tipo de datos del parámetro no se puede especificar directamente al definir un procedimiento almacenado es: el cursor de referencia, el cursor de referencia se redefine primero por el siguiente método:
crear o reemplazar el paquete FuxJpackage es
tipo fuxjResultSet es el cursor de referencia;
-también puedes definir otro contenido
Fin FuxJpackage;
Defina el procedimiento almacenado nuevamente:
Cree o reemplace el procedimiento UpdateFuxJExample (SDM en Char, SMC en Char, preccur in out fuxjpackage.fuxjResultSet)
como
Comenzar
actualizar fuxJexample set mc = smc donde dm = sdm;
Si SQL%RowCount = 0 entonces
reversión;
Abrir precluto para
seleccione '0' res de dual;
demás
comprometerse;
Abrir precluto para
Seleccione '1' Res de Dual;
fin si;
fin;
y
Cree o reemplace el procedimiento InsertFuxJExample (SDM en Char, SMC en Char, preccur in out fuxjpackage.fuxjResultSet)
como
Comenzar
insertar en valores de FuxJExample (DM, MC) (SDM, SMC);
comprometerse;
Abrir precluto para
Seleccione * de FuxJExample;
fin;
2. Llame al procedimiento almacenado que devuelve el conjunto de datos en Delphi
El almacenamiento que ejecuta el conjunto de datos de retorno se puede llamar a través del control TstoredProc o TQuery. PTInputoututput.
Use TstoredProc para ejecutar la configuración relevante de UpdateFuxJExample como:
Objeto StoredProc1: TstoredProc
DatabAsename = 'useProc'
Storedprocname = 'updateFuxJExample'
Paramdata = <
artículo
DataType = ftString
Nombre = 'sdm'
Paramtype = ptinput
fin
artículo
DataType = ftString
Nombre = 'SMC'
Paramtype = ptinput
fin
artículo
DataType = ftcursor
Nombre = 'preccur'
Paramtype = ptinputoutput
Valor = nulo
fin>
fin
El método de ejecución es:
StoredProc1.Params.Items [0] .Asstring: = edit1.text; // Asignar valor al parámetro;
StoredProc1.Params.Items [1] .sstring: = edit2.Text; // Asignar el parámetro;
Storedproc1.active: = false;
Storedproc1.active: = true;
Use TQuery para ejecutar la configuración relevante de InsertFuxJExample como:
Consulta de objetos1: TQuery
DatabAsename = 'useProc'
Sql.strings = (
'comenzar'
'InsertFuxJExample (sdm => m, smc =>: mc, preccur =>: reccur);'
'fin;')
Paramdata = <
artículo
DataType = ftString
Nombre = 'dm'
Paramtype = ptinput
fin
artículo
DataType = ftString
Nombre = 'MC'
Paramtype = ptinput
fin
artículo
DataType = ftcursor
Nombre = 'reccur'
Paramtype = ptinputoutput
fin>
fin
El método de ejecución es:
Query1.Params.Items [0] .String: = edit3.Text;
Query1.Params.Items [1] .String: = edit4.Text; / / Asignar valor al parámetro;
Query1.active: = false;
QUERY1.ACTIVE: = True;
Si SQL%RowCount = 0 entonces
reversión;
Abrir precluto para
seleccione '0' res de dual;
demás
comprometerse;
Abrir precluto para
Seleccione '1' Res de Dual;
fin si;
fin;
y
Cree o reemplace el procedimiento InsertFuxJExample (SDM en Char, SMC en Char, preccur in out fuxjpackage.fuxjResultSet)
como
Comenzar
insertar en valores de FuxJExample (DM, MC) (SDM, SMC);
comprometerse;
Abrir precluto para
Seleccione * de FuxJExample;
fin;
2. Llame al procedimiento almacenado que devuelve el conjunto de datos en Delphi
El almacenamiento que ejecuta el conjunto de datos de retorno se puede llamar a través del control TstoredProc o TQuery. PTInputoututput.
Use TstoredProc para ejecutar la configuración relevante de UpdateFuxJExample como:
Objeto StoredProc1: TstoredProc
DatabAsename = 'useProc'
Storedprocname = 'updateFuxJExample'
Paramdata = <
artículo
DataType = ftString
Nombre = 'sdm'
Paramtype = ptinput
fin
artículo
DataType = ftString
Nombre = 'SMC'
Paramtype = ptinput
fin
artículo
DataType = ftcursor
Nombre = 'preccur'
Paramtype = ptinputoutput
Valor = nulo
fin>
fin
El método de ejecución es:
StoredProc1.Params.Items [0] .Asstring: = edit1.text; // Asignar valor al parámetro;
StoredProc1.Params.Items [1] .sstring: = edit2.Text; // Asignar el parámetro;
Storedproc1.active: = false;
Storedproc1.active: = true;
Use TQuery para ejecutar la configuración relevante de InsertFuxJExample como:
Consulta de objetos1: TQuery
DatabAsename = 'useProc'
Sql.strings = (
'comenzar'
'InsertFuxJExample (sdm => m, smc =>: mc, preccur =>: reccur);'
'fin;')
Paramdata = <
artículo
DataType = ftString
Nombre = 'dm'
Paramtype = ptinput
fin
artículo
DataType = ftString
Nombre = 'MC'
Paramtype = ptinput
fin
artículo
DataType = ftcursor
Nombre = 'reccur'
Paramtype = ptinputoutput
fin>
fin
El método de ejecución es:
Query1.Params.Items [0] .String: = edit3.Text;
Query1.Params.Items [1] .String: = edit4.Text; / / Asignar valor al parámetro;
Query1.active: = false;
QUERY1.ACTIVE: = True;
Adjunto: marco simple para crear procedimientos almacenados que devuelven conjuntos de datos
1.
crear o reemplazar el paquete TestPackage es
Tipo TestResultSet es Ref Cursor;
End TestPackage;
2.
crear o reemplazar la prueba de procedimiento
(
Accur In Out TestPackage .TestResultSet
)
como
Comenzar
Abrir precluto para
seleccionar * de la tabla;
fin;