![]() |
Extraccion valores MySQL
Hola de nuevo,
No se si estas preguntas deberian ubicarse mejor en otro grupo del foro, en tal caso, avisarme. Realizado un SELECT de varios campos procedo a hacer comparaciones con valores de los campos para hacer unas tareas u otras. Algunos de los campos extraidos no tiene valor (son NULL), entonces a la hora de hacer una comparación con dichos campos, la aplicación aborta dandome un error de "Access violation at address... Read of address 00000000". La comparacion es: if (Row[Voz3]='*') AND (cantado = false) then donde el valor del campo Voz3 es NULL Entonces intuyo que el problema se debe al comparar un null con cualquier valor, ya que las comparaciones anteriores no fallan y los campos tienen valor. Una posible solución que se me ocurre es no admitir valores NULL en la base de datos y utilizar algun comodin como NULL, pero no me parece muy elegante. Cómo se puede solventar dicha controversia? Gracias, Vicente |
prueba con..
if not Row.FieldByName('Voz30').IsNull and/or ..... Espero te sirva |
De momento no me ha solucionado el problema, la sintaxis no me la reconoce y como tampoco he tocado antes Delphi, poco puedo hacer por mis propios medios para intentar jugar con algo parecido o buscar funciones similares.
Sigo vendido ;) |
1 Archivos Adjunto(s)
Os adjunto el codigo tal y como lo tengo, asi podrá ser más facil a quien pueda echarme una mano encontrar como puedo reordenar codigo o que funciones puedo utilizar tal y como tengo definidas las variables.
|
Es que estás usando "algo" que seguramente va a bajo nivel
Row: PMYSQL_ROW; (¿Api de MySQL?) en vez de un dataset normal. ¿Por qué no pruebas a usar un SQLConnection (D6 o superior) con driver MySQL? Así podras usar los TFields (y por lo tanto el FieldByName) y podrás preguntar si son NULL o no y hacer la comparación en este último caso. Si te quedas con esas funciones, tendrás que mirar en la ayuda de las mismas o preguntar en el foro de MySQL |
Desconozco el uso de SQL Connection, como hacer conexiones, moverme por los datos, insertar filas...
|
Cita:
Código:
if (Row[Voz3] <> nil) and (Row[Voz3] = '*') and (Cantado = false) then Un consejo: Es difícil empezar con Delphi y es difícil empezar con MySql pero es más difícil empezar con ambos a la vez. Quizá te convenga buscar las componentes ZEOS (busca en Google) para que puedas acceder fácilmente a MySql y preocuparte ahora más por Delphi. // Saludos |
La franja horaria es GMT +2. Ahora son las 06:06:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi