SQL - Problema con Update

 
Vista:

Problema con Update

Publicado por Eugenia (8 intervenciones) el 24/09/2009 04:57:30
Buenas noches!!
Necesito ayuda. Acabo de empezar a trabajar con Stored Procedures, tengo muchas dudas.
Estoy haciendo un insert (con select) a una tabla temporal. Luego actualizo dos campos de ésta (por separado), cuando quiero mostrar el recorset desde mi aplicacion (desde Vb 6.0) me trae los campos del select del insert, pero no me muestra los campos que actualicé. Por que será? No entiendo mucho todavía y debo realizarlo cuanto antes. Gracias !!

Este es mi SP

CREATE PROCEDURE UP_SEL_CtaCteProf
@Codap1 char(3),
@Codap2 char(3),
@fechemi1 smalldatetime,
@fechemi2 smalldatetime

AS
set nocount on
CREATE TABLE #TablaTemp
(
CODAP char (3),
CODCAB char(3),
TOTAL integer,
LEYENDA varchar,
LEYENDA2 varchar,
)

INSERT INTO #TablaTemp (CODAP, CODCAB, TOTAL, LEYENDA, LEYENDA2)
SELECT CODAP, CODCAB, sum (TOTAL), '','' FROM CTACTEPROFESIONALES
GROUP BY CODAP, CODCAB, FECHAEMISION
having ((CODAP>=(@Codap1)) OR (CODAP<=(@Codap2)) AND
((FECHAEMISION >= (@fechemi1)) and (FECHAEMISION <= (@fechemi2))))
order by CODAP, CODCAB

update #TablaTemp
set LEYENDA= (SELECT Descripcion
FROM TABLAS WHERE ((CodigoTabla = '22') AND (TABLAS.Clave = '#TablaTemp.CODAP')))

update #TablaTemp
set LEYENDA2 = (SELECT Descripcion
FROM TABLAS WHERE ((CodigoTabla = '22') AND (TABLAS.Clave = '#TablaTemp.CODCAB')))

SELECT* FROM #TablaTemp

DROP TABLE #TablaTemp
GO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con Update

Publicado por Antonio (17 intervenciones) el 24/09/2009 10:09:00
¿Como recuperas el recordset desde VB6? Envia la parte del código que ejecuta la stored procedure y lee el recordset en VB6.

De entrada te diré que la procedure tal como está no obtiene resultados, el motivo es el DROP que hay al final, que elimina la tabla temporal.

Para asegurarte que no existe la tabla temporal al crearla, te recomiendo que hagas el DROP al principio condicionado a la existencia de la tabla (If EXIST... then DROP ....)

¿Que pretendes con el SELECT * FROM #TablaTemp?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con Update

Publicado por Eugenia (8 intervenciones) el 24/09/2009 13:22:11
Hola Antonio. Desde ya gracias. Asi como está me ejecutando mi aplicacion, me trae solo tres campos, los que no me muestra son leyenda y leyenda1. Lo del Drop lo voy a tener en cuenta porq no sabia bien como manejarlo. Gracias de nuevo, espero puedas ayudarme.

Codigo en Vb.

Private Sub SSCommand1_Click()

Dim straux As String
Dim mcnconn As New ADODB.Connection

straux = "UP_SEL_CtaCteProf '" & (dcboCodap.Text) & "', '" & (dcboCodap2) & "' ,'" & Format(mskFecDesde.Text, "yyyyMMdd") & "','" & Format(mskFecHasta.Text, "yyyyMMdd") & "'"


Set rsaux = Nothing

rsaux.CursorLocation = gstrCType

mcnconn.ConnectionString = gstrConnect
mcnconn.CursorLocation = adUseClient
mcnconn.Open

Set rsaux = mcnconn.Execute(straux)

Debug.Print straux

If Not rsaux.EOF Then
Set dgProfesionales.DataSource = rsaux
dgProfesionales.Refresh

End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar