Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ferlucas

#1
Voy a tratar de ser lo más claro posible.

Para que tengan una idea, estoy hacien un sistema para registrar películas. En cuestión, tengo 3 bases de datos: movies, reparto y actores.
La BD reparto tiene los campos id_movie e id_actor. La BD actores tiene los campos id_actor y descripción.

Lo que quiero hacer, y me estoy equivocando, es hacer una consulta que me traiga solamente las peliculas en las que trabaje un determinado actor. La consulta que hago es la siguiente:

SELECT movies.* FROM movies WHERE movies.id IN (SELECT DISTINCT(reparto.id_movie) FROM reparto INNER JOIN actores ON reparto.id_actor=actores.id_actor WHERE actores.descripcion LIKE '%Smith%');

Estoy cometiendo un error. Sino, no me daría error. Pero como recién estoy empezando con esto de las subconsultas, no encuentro como solucionarlo.
Si alguien me puede dar una mano, sera agradecida.
Saludos.
#2
Set grdDatos.DataSource = Nothing
rs.Close ---> aca salta el error
rs.Source = sql
rs.Open
Set grdDatos.DataSource = rs
#3
La comente y funciona todo bien.
#4
A ver si pueden ayudarme.
Tengo 3 tablas.
tabla1 (id_factura, id_cliente y otros que no hay historia)
tabla2 (id_factura, id_producto)
tabla3 (id_producto, descripcion)


El DataGrid debe mostrar los las facturas.
'Abro la conexion
cn.ConnectionString="PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 3.51.06 Driver};SERVER=localhost;DATABASE=datadb;UID=userid;PWD=userpwd;OPTION=16427;"
cn..CursorLocation = adUseClient
cn.Open
Set rs.ActiveConnection = cn
rs.CursorLocation
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM tabla1"
rs.Open
Set DataGrid1.DataSource = rs

Hasta aca... todo bien.
Tengo un TextBox y lo que hago es buscar todas las facturas con determinados productos cuya descripcion contenga lo que intege en el TextBox. La consulta la hago asi:
sql = "SELECT facturas.* FROM " & _
        "(tabla1 INNER JOIN tabla2 ON tabla1.id_factura=tabla2.id_factura) " & _
        "INNER JOIN tabla3 ON tabla3.id_producto=tabla2.id_producto " & _
        "WHERE LIKE '%" & TextBox.Text & "%';"

rs.Close
rs.Source = sql
rs.Open
'Refresco el DataGrid

En la linea rs.Close... me salta un error 3219 - "Operacion no permitida en este contexto".
Como lo puedo solucionar?. Omiti algun paso?.
#5
Cita de: Dunklerstern en 24 Junio 2005, 01:13 AM
Y cómo hago? Y cómo se puede hacer?, Y cómo, y cómo y cómo. Por lo menos molestate en buscar un poco antes de pedir que hagan las cosas por vos, acá nadie es sirviente de nadie.

Yo entiendo que es molesto que pregunten tanto, pero muchas veces cuando buscas encontras tanta informacion que te abruma. En vez de contestar asi, podes guiarlo diciendo exactamente "qué" y "dónde".
Cita de: alwar en  1 Julio 2005, 02:45 AM
Vale, parece que ya van mejorando las cosas con esto, Me baje el driver de MySQL y parece que va mejor, solo que al conectar me dice access denied for user... y mi Ip, yo me conecto a traves de un router, puede influir eso en que el servidor me rechaze la conexion?
Como definiste el ConnectionString?
#6
Cita de: sexiboymx en  1 Julio 2005, 22:20 PM
hola!!!
pasa el dato como le hiciste ;D
tengo pendiente un proyecto de catalogo de productos :-[ y quisiera hacer un intento con MySQL
aver si puedo  ??? 

estuve medio perdido por eso no lo hice antes. Suelo escribir la solucion que encontre para poder ayudar a los que tengan el mismo problema. La verdad, es que no me fijo si es lo mejor o no, me fijo en que es lo que piden. Independientemente de mi criterio.
Bueno... paso los codigos de como lo hice.

Antes que nada, en la tabla de la bd MySQL debemos definir un campo como LONGBLOB (lo habia definido como BLOB pero me cortaba la imagen).

CitarPara grabar las imagenes
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ms As New ADODB.Stream

cn.ConnectionString = "PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 3.51.06 Driver};SERVER=server_name_or_ip;DATABASE=db_name;UID=user_id;PWD=user_pass;OPTION=16427;"
cn.Open

Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM tabla WHERE id=1" 'registro a modificar
rs.Open

ms.Type = adTypeBinary
ms.Open
ms.LoadFromFile (Path y nombre de la imagen)
rs.Fields("imagen").Value = ms.Read
rs.Update
rs.Close
ms.Close
cn.Close
Set ms = Nothing
Set rs = Nothing
Set cn =  Nothing

CitarPara leer la imagen
'En este caso, la mostramos en un PictureBox
'Lo que hacemos es generar una imagen.jpg temporal
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ms As New ADODB.Stream

cn.ConnectionString = "PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 3.51.06 Driver};SERVER=server_name_or_ip;DATABASE=db_name;UID=user_id;PWD=user_pass;OPTION=16427;"
cn.Open

Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM tabla WHERE id=1" 'registro a modificar
rs.Open
ms.Type = adTypeBinary
ms.Open
ms.Write rsImg.Fields("imagen").Value
ms.SaveToFile (Path y nombre de JPG temporal), adSaveCreateOverWrite
Picture1.Picture = LoadPicture(Path y nombre de JPG temporal)
#7
Cita de: soplo en 29 Junio 2005, 13:28 PM
Hola
Es un error meter imágenes en una base de datos.
Lo correcto es guardar las imágenes en un directorio y guardar en la base de datos la ubicación de esa imagen.

De esa forma solo guardas un string.

Un saludo

Encontre por otro lado la forma de hacerlo.
Hice la comparacion. La base de datos me quedo de 78MB. El directorio con las imagenes es de 77MB.
Viendo que es tan poca la diferencia, prefiero meter las imagenes dentro de la base de datos. De esta forma, ahorro en tiempo de back-up (al no tener que hacer 2 procesos por separado), si monto un sitio web con esa base de datos no tengo que subir las imagenes al server, si me borran las imagenes no hay problema (de hecho, al grabarlas se borran de HD), entre otros factores mas.
Igualmente, agradezco tu opiñíon. Pero, a mi criterio, no es ningún error.
Saludos y nuevamente, gracias.
#8
Programación Visual Basic / JPG en bd MySQL?
28 Junio 2005, 21:08 PM
En si es eso. Tengo que meter una imagen (JPG) dentro de un campo de una bd MySQL. El campo esta definido como MEDIUMBLOB.
Alquien puede darme una mano?.
Saludos.
#9
A ver si me pueden ayudar con algo similar.
Tengo una carpeta C:\Imagenes. Los archivos dentro de esta (cerca de 300), se llaman [IMG-####] descripcion.jpg. Ahora, quiero hacer un proceso automatico para que me renombre todos esos archivos a IMG-####.jpg solamente. Alguna sugenrencia?.
Saludos.
#10
Multimedia / Re: Ayuda con DVD-Lab Pro !!!
19 Abril 2005, 01:27 AM
Gracias Songoku. Sobre el primer punto. Si me podes pasar alguna forma de hacerlo para probar, te lo agradezco.