Visual Basic - Ayuda urgente por favor!!!

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda urgente por favor!!!

Publicado por JosInfo (21 intervenciones) el 12/02/2006 20:07:11
hola a to2.

mi consulta es sobre este codigo:

Set ADO_Cmd.ActiveConnection = Conn
ADO_Cmd.CommandType = adCmdText
ADO_Cmd.CommandText = "Select Max(Pru_Cod) As Codpu From Prueba;"
Set ADO_Rs = ADO_Cmd.Execute
If ADO_Rs(0).Value = Null Then
Pru_CodAux = 1
Else
Pru_CodAux = ADO_Rs(0).Value
Pru_CodAux = Pru_CodAux + 1
End If

este codigo busca el valor maximo el cual pertenece a un codigo para x prueba, si en la bd encuentra un valor maximo se le suma 1, de lo contrario si la bd esta vacia se le asigna 1 a la variable del codigo, pero el problema es cuando esta vacia la bd, en la consulta sql devuelve un valor null y en la sentencia al comparar ADO_Rs(0).Value = Null pasa directamente al else.

el problema sera la conexion a la bd ya q utilizo oledb???

se agradece de ante mano la ayuda.
gracias!!
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:Ayuda urgente por favor!!!

Publicado por Cecilia Colalongo (3116 intervenciones) el 12/02/2006 21:08:39
Fijate de hacer:

ADO_Cmd.CommandText = "Select IIF(ISNULL(Max(Pru_Cod)),0,Max(Pru_Cod)) As Codpu From Prueba;"

De esa forma si es un valor nulo siempre devolverá 0 caso contrario el valor máximo.
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:Ayuda urgente por favor!!!

Publicado por JosInfo (7 intervenciones) el 12/02/2006 21:23:40
te agradesco mucho tu ayuda te pasaste y gracias de nuevo
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:Ayuda urgente por favor!!!

Publicado por JosInfo (7 intervenciones) el 12/02/2006 21:29:10
hola en este codigo "Select IIF(ISNULL(Max(Pru_Cod)),0,Max(Pru_Cod)) As Codpu From Prueba;" el 0 que devuelve es el que se encuentra entre comas cierto???. Y es PL/Sql???

gracias por tu aydua.
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:Ayuda urgente por favor!!!

Publicado por Cecilia Colalongo (3116 intervenciones) el 12/02/2006 22:20:05
Si funciona o no en PL/SQL deberías probarlo, en Access se puede usar IIF y en SQL Server se puede usar COALESCE o CASE, tendrías que revisar las funciones que tienes disponibles y en adaptarlo en último caso. En tu pregunta original no indicas que DBMS estás usando.
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:Ayuda urgente por favor!!!

Publicado por JosInfo (7 intervenciones) el 13/02/2006 00:12:42
hola de nuevo, tienes algun manual de sql donde salgan ese tipo de consultas que me explicaste anteriormente.

chau gracias.....
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:Ayuda urgente por favor!!!

Publicado por JosInf (7 intervenciones) el 13/02/2006 03:34:14
hola de nuevo disculpa las molestias es que estoy fuera de training, hace tiempo que no programo jejej en VB. mira mi consulta ahora es:

hice lo del iff funciona luego de haber echo el iff realizo un insert, depues utilizo nuevamente el iff(*2*) pero me da el siguiente error "se esperaba insert, delete,etc" en la consulta, a que se debe eso???.

With ADO_Cmd
Set .ActiveConnection = Conn
.CommandType = adCmdText
(*1*).CommandText = "Select IIF(ISNULL(Max(Pru_Cod)),0,Max(Pru_Cod)) As Codpu From Prueba;"
Set ADO_Rs = .Execute
If ADO_Rs(0).Value > 0 Then
Pru_CodAux = ADO_Rs(0).Value
Pru_CodAux = Pru_CodAux + 1
Else
Pru_CodAux = 1
End If
.CommandText = "Insert Into Prueba Values (" & Pru_CodAux & ",'" & Form_NomPrue.Tex_NomPrue.Text & "','" & Date & "');"
Set ADO_Rs = .Execute
Con_Pre = 0
For Con_Opt = 0 To 55
If Opt_Pre(Con_Opt).Value = True Then
(*2*) .CommandText = "IIF(ISNULL(Max(Pre_Cod)),0,Max(Pre_Cod)) As Codpr From Preguntas;"
Set ADO_Rs = .Execute
If ADO_Rs(0).Value > 0 Then
Pre_CodAux = ADO_Rs(0).Value
Pre_CodAux = Pre_CodAux + 1
Else
Pre_CodAux = 1
End If
.CommandText = "Insert Into Preguntas Values (" & Pre_CodAux & "," & Pru_CodAux & ",'" & Tex_Pre(Con_Pre).Text & "'," & Con_Opt & ");"
Set ADO_Rs = .Execute
Con_Pre = Con_Pre + 5
End If
Next
End With

nose porque da tanto problema visual o en este caso el objeto ADO con sql en otros lenguajes no hay problemas por ej. php, java.

te agradesco de ante mano tu respuesta...
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:Ayuda urgente por favor!!!

Publicado por JosInfo (7 intervenciones) el 13/02/2006 03:39:58
ya encontre el problema gracias de todas manera cahuu...
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