Visual Basic - llamar a funcion desde sentencia SQL en VB6.0

Life is soft - evento anual de software empresarial
 
Vista:

llamar a funcion desde sentencia SQL en VB6.0

Publicado por Omar (2 intervenciones) el 16/12/2009 15:10:38
Hola amigos,

resumiendo tengo lo siguiente:

(en el codigo de un commandbutton)
Private Sub cmdo_CGExEstab_Click()
strSQL= " select anio,mes, cge(codigo) as tipo from tabla"
procederCGE strSQL
end sub

(en un modulo aparte)
sub procederCGE(cad as string)
set db=opendatabase(app.path & "\db3.mdb")
set baselis=db.openrecordset(cad)
...
..
.
end sub

(en otro modulo)
public function cge(cod as string)
...
..
.
end function

Tengo el problema siguiente, que al ejecutar la instruccion
OPENRECORDSET aparece un "error 3085 en tiempo de ejecucion" "la
funcion 'cge' no esta definida en la expresion"

sera que no puedo llamar directamente, desde una instruccion SQL, a
una funcion que se encuentra en otro modulo?
como hacer entonces?
alguien puede ayudarme?

saludos a todos
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:llamar a funcion desde sentencia SQL en VB6.0

Publicado por Pedro Luis (878 intervenciones) el 17/12/2009 12:59:35
Lo correcto creo que sería
strSQL= " select anio,mes," & cge(codigo) & " as tipo from tabla"
Como curiosidad no he encontrado el error 3085.
Puede que haya que poner comillas al cge(codigo).
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:llamar a funcion desde sentencia SQL en VB6.0

Publicado por omar (2 intervenciones) el 17/12/2009 13:18:47
Gracias Pedro por responder,
Si, esa solucion que me das ya me lo habian propuesto, pero el problema es que el parametro de la funcion CGE, usa un campo de la consulta, por lo que da error.
Estoy viendo que no voy a poder ejecutar este tipo de sentencia sql con funciones propias.
Aclato que tengo el visual basic 6. Alguien me dijo que a partir del 2005 la cosa cambia.
voy a seguir averguando.

Gracias nuevamente.

Saludos
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