Visual Basic - Ayuda VB

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda VB

Publicado por Marie (11 intervenciones) el 16/06/2009 15:13:07
Hola.
Necesito una ayuda, estoy realizando una aplicación en Vb con Base de datos en mysql, cuando realizo una consulta y un dato no se encuentra en la base de datos la aplicación me arroja un error,
Se que esto es por que tengo que habilitar la casilla de not nul en Mysql pero también tengo una imagen y esta no se quiere habilitar esta casilla, me imagino que es por el tipo de dato (MEDIUMBLOB).
¿Será que existe alguna manera de solucionar esto? en mi BD tengo una sola tabla donde se encuentra el campo de la imagen y los datos.
De verdad soy una novata con respecto a esto.
Espero me puedan ayudar.
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 VB

Publicado por Quique (51 intervenciones) el 16/06/2009 16:48:35
A ver, dices que cuando realizas una consulta y un dato no se encuentra en la base de datos (en la tabla, realmente) la aplicación te arroja un error.
Bueno, si es esto, ya lo hemos contestado anteriormente, y basta con comparar el valor de la propiedad EOF de tu recordset, después de haber realizado tu consulta:

' Haces tu consulta y luego comparas el valor de EOF:
If Not rs.EOF Then ' obviamente "rs" es tu recordset
' Aquí pones lo que tenga que hacer tu programa cuando localiza el registro
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

RE:Ayuda VB

Publicado por Marie (11 intervenciones) el 16/06/2009 18:30:50
¡Creo que no me entendiste!, ¡no me explique bien!

La propiedad EOF la tengo en mi aplicación, me funciona muy bien...

Me explico mejor:

Supongamos que yo tengo en mi tabla X los campos: cedula, nombre, apellido, foto.

En los cuales tengo 1234, Marie, Free, "PERO NO TENGO LA FOTO"
Cuando realizo la consulta mediante la aplicación me arroja el error. Por no tener la foto.

Cuando se trabaja con varchar, integer, entre otros, tengo entendido que para que no de este tipo de error se coloca en la tabla de mysql not nul en cada uno de los campos, esto es más que todo para poder dejar los campos vacíos al momento de guardar alguna información o dato mediante la aplicación. Si no lo coloco Not null tengo llenar todos los campo obligatoriamente. Eso sucede con ese tipo de variables. Ahora lo que no se es como hacerlo con un campo de tipo BLOB. Porque intente hacer lo mismo pero me da error cuando modifico la tabla de MySql.

¿Me entiendes?

A lo mejor esto no le compete a este foro, porque el problema es mas que todo de Mysql, pero si saben mas o menos como ayudarme se lo agradezco.

Gracias por su 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

Tranquila

Publicado por Quique (51 intervenciones) el 16/06/2009 18:54:39
¡Sí, sí te entiendo!
Lo mejor para tu caso es que uses una rutina de detección de errores (On Local Error Goto), para que si el campo no tiene el contenido adecuado pues no se queje el programa
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

Gracias

Publicado por Marie (11 intervenciones) el 16/06/2009 19:33:19
Ok., Gracias Sr. Quique. intentaré hacerlo asi!
¡Muchas Gracias por su ayuda!
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:Gracias

Publicado por Jaime guerrero (361 intervenciones) el 18/06/2009 00:59:00
Marie, la mejor forma de poderte ayudar, sin estar suponiendo es que pongas el codigo que usas. asi podre saber cual es el problema.
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

CODIGO

Publicado por Marie (11 intervenciones) el 18/06/2009 17:07:46
Ok, este es mi codigo! con lo que me dijeron anteriormente no me funciona muy bien ya que cuando realizo cualquier busqueda me sale simpre el mensaje de error que arroja esa propiedad. espero me puedan ayudar.
De ante mano muchas gracias!

Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim mystream As ADODB.Stream
Set mystream = New ADODB.Stream
mystream.Type = adTypeBinary
conn.CursorLocation = adUseClient
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=pozos; UID=root; PWD=1234; OPTION= & 1 + 2 + 8 + 32 + 2048 + 16384"
conn.Open
rs.Open "SELECT * FROM datos WHERE pozo LIKE '" + Text47.Text + "'", conn


If Not rs.EOF Then ' Si no es EOF indica que sí hay registros.

Form3.Text1.Text = rs.Fields!pozo
Form3.Text2.Text = rs.Fields!estacion
Form3.Text3.Text = rs.Fields!ub
Form3.Text4.Text = rs.Fields!marca
Form3.Text5.Text = rs.Fields!modelo
Form3.Text6.Text = rs.Fields!fija
Form3.Text7.Text = rs.Fields!portatil
Form3.Text8.Text = rs.Fields!tipocorrea
Form3.Text9.Text = rs.Fields!protcorrea
Form3.Text10.Text = rs.Fields!stroker
Form3.Text11.Text = rs.Fields!celler
Form3.Text12.Text = rs.Fields!palanca
Form3.Text13.Text = rs.Fields!faja
Form3.Text14.Text = rs.Fields!bt
Form3.Text15.Text = rs.Fields!guaya
Form3.Text16.Text = rs.Fields!carrera
Form3.Text17.Text = rs.Fields!pintura
Form3.Text18.Text = rs.Fields!modelos
Form3.Text19.Text = rs.Fields!empaques
Form3.Text20.Text = rs.Fields!silla
Form3.Text21.Text = rs.Fields!cruceta
Form3.Text22.Text = rs.Fields!pines
Form3.Text23.Text = rs.Fields!marcame
Form3.Text24.Text = rs.Fields!serialme
Form3.Text25.Text = rs.Fields!potenciame
Form3.Text26.Text = rs.Fields!diametroeje
Form3.Text27.Text = rs.Fields!fijame
Form3.Text28.Text = rs.Fields!busingme
Form3.Text29.Text = rs.Fields!interno
Form3.Text30.Text = rs.Fields!externo
Form3.Text31.Text = rs.Fields!marcarc
Form3.Text32.Text = rs.Fields!serialrc
Form3.Text33.Text = rs.Fields!observacionrc
Form3.Text34.Text = rs.Fields!marcapc
Form3.Text35.Text = rs.Fields!serialpc
Form3.Text36.Text = rs.Fields!potenciapc
Form3.Text37.Text = rs.Fields!variadorpc
Form3.Text38.Text = rs.Fields!fechapc
Form3.Text39.Text = rs.Fields!observacionpc

'Aqui es donde muestro la imagen
mystream.Open
mystream.Write rs!fotopozo
mystream.SaveToFile "c:LaImagen.jpg", adSaveCreateOverWrite
mystream.Close
rs.Close
Set Image1.Picture = LoadPicture("c:LaImagen.jpg")
Kill "c:LaImagen.jpg"

Form3.Text47.Text = ""
Form3.Text47.SetFocus


Else
If Text47.Text = "" Then
MsgBox "Campo Vacio Introduzca el número del pozo"
Text47.SetFocus

Else

MsgBox "No se localizó el registro en la base de datos"

Form3.Text47.Text = ""
Form3.Text47.SetFocus

End If
End If


End Sub
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:CODIGO

Publicado por el feo (2 intervenciones) el 18/06/2009 18:42:11
que raro, yo estoy en la misma situación que tu y cuando el campo que debe contener la foto no tiene una imagen valida pues controlo el error usando on goto y me funciona de perlas
no se cual sea tu problema pero supongo que no has de haber sabido implementar eso, lo mas probable
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:CODIGO

Publicado por Jaime guerrero (361 intervenciones) el 22/06/2009 21:21:20
proba reemplazando c:LaImagen.jpg por c:LaImagen.jpg
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

Ups

Publicado por El Malo (8 intervenciones) el 16/06/2009 19:09:23
Yo leo esto:

"cuando realizo una consulta y un dato no se encuentra en la base de datos la aplicación me arroja un error"

y eso se entiende como que no existe el registro. Tal vez debiste escribir que uno de los campos no tiene el contenido deseado, o algo así.
Y así es, a los campos BLOB no se les puede habilitar la casilla Not Null, pero si puedes controlar el error en tu programa al tratar de recuperar el dato, como te lo están diciendo.
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