Qt en Español
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
Qt en Español

Qt en Español es una comunidad de usuarios para aprender a Programar usando las librerias Qt

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» Desaparecen objetos del formulario al usar showMaximized()
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptySáb Sep 13, 2014 9:54 pm por ljimenez29

» visivilidad de controles
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptyDom Mayo 18, 2014 5:04 pm por solitarywolf

» Error QT (y no sé que más poner ¬¬)
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptyJue Sep 26, 2013 4:02 pm por Anónimo

» QT, VTK en VS 2008 C++
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptyJue Abr 11, 2013 5:19 pm por monicadiaz

» [Ayuda]Programa en PyQt4 en modo Pantalla completa
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptySáb Mar 30, 2013 8:56 pm por fortil

» SIGNAL y SLOT
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptySáb Mar 02, 2013 5:11 pm por loloqt

» Qt creator 5.0.1 en Windows 8...."Qt creator needs a compiler set up to build. Configure a compiler in the kit options"
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptyMiér Feb 27, 2013 4:23 pm por caliche

» mi aplicacion no me lee la base de datos
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptyJue Oct 18, 2012 1:55 pm por jldiaz

» QT.Para G19 de Logitech
Guardar imagenes directo en mysql con qtcreator [Solucionado] EmptyDom Oct 14, 2012 3:00 am por novax1

Navegación
 Portal
 Índice
 Miembros
 Perfil
 FAQ
 Buscar
Compañeros
Crear foro
Sondeo

Que nombre te gustaria que se llamara el foro?

Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_lcap27%Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_rcap 27% [ 6 ]
Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_lcap18%Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_rcap 18% [ 4 ]
Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_lcap0%Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_rcap 0% [ 0 ]
Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_lcap55%Guardar imagenes directo en mysql con qtcreator [Solucionado] Vote_rcap 55% [ 12 ]

Votos Totales : 22


No estás conectado. Conéctate o registrate

Guardar imagenes directo en mysql con qtcreator [Solucionado]

3 participantes

Ir abajo  Mensaje [Página 1 de 1.]

horus

horus

Hola bueno solicito un poco de ayuda es que estoy tratando de crear una aplicacion con base de datos con el driver QMYSQL en la cual necesito guardar los datos de empleados con todo y foto(en la misma base de datos) por motivos de que todo se va a centralizar en un servidor remoto y he buscado en google y vienen varios ejemplos pero en php alguien tiene conocimiento sobre el tema que puedar darme una ayuda?.

Lo que hacen las rutinas es lo siguiente:
*************************************************************************************
1.- Se captura la imagen con una camara digital y se copia al disco duro.
2.- Por medio de un QFileDialog localizamos la foto y guardamos su ruta y nombre en un QString llamado archivo_foto
3.- a un QLabel le pongo en el valor setPixmap la ruta y el nombre de la imagen que escogemos en el QFileDialog y se muestra
la foto en la etiqueta.

int MainWindow::captura()
{
QString archivo_foto;
archivo_foto = QFileDialog::getOpenFileName(this,tr("Abrir Archivo"),tr("/home/Imágenes"),tr("Imagenes(*.png *.xpm *.jpg"));
ui->label_foto->setPixmap(archivo_foto);
return 0;
}
*************************************************************************************

Pero el problema viene cuando la quiero guardar con el query donde le agrego en el segundo campo de los VALUES esto
ui->label_foto->pixmap() no se si me falta algo o haya que convertirlo por que en la base de datos este campo lo puse como LongBlob

QSqlQuery query;

query.exec("INSERT INTO `ismed`.`empleados` (`id` ,`foto`,`nombre` ,`apellidop` ,`apellidom` ,`puesto` ,`direccion` ,`fecha_ingreso` ,`salario` ,`depto` ,`activo`)VALUES (NULL ,"+ ui->label_foto->pixmap() +",'"+ui->lineEdit_2->text()+"', '"+ui->lineEdit_3->text()+"', '"+ui->lineEdit_4->text()+"', '"+ui->lineEdit_5->text()+"', '"+ui->lineEdit_6->text()+"', '"+ui->lineEdit_7->text()+"', '"+ui->lineEdit_8->text()+"', '"+ui->lineEdit_9->text()+"', '"+ui->lineEdit_10->text()+"');");

me marca el siguiente error:

/home/horus/sql/mainwindow.cpp:56: error: invalid operands of types ‘const char [167]’ and ‘const QPixmap*’ to binary ‘operator+’

Agradesco de ante mano la ayuda Gracias y en caso de que encuentre yo mismo la solución a esto con gusto la publico para el provecho de todos.

TheKiken

TheKiken

hola amigo.

Bueno aquí ayudándote un poco en lo que estas haciendo.

Espero lo que te pongo en seguida te sea de utilidad en lo que estas buscando.

Primero que nada te indico que el campo LONGBLOB L + 4 bytes, where L < 2 a la 32, bueno a parte de eso también dejando muy claramente que este campo recibe byte, ya que puede dar el ruido que estas metiendo otro tipo de datos en este campo.

En Segundo tu error " invalid operands of types ‘const char [167]’ and ‘const QPixmap*’ to binary ‘operator+’ " te esta indicando que tu quieres realizar la conversion de caracteres a byte (binarios), lo cual esto no te permite realizar esta conversión.

En Tercero utiliza QImage, para leer la imagen y despues la conviertes a QPixmap y creo que ya con eso la vas a poder guardar en tu base de datos.

Deja ver un poco mas lo que es estas 2 librerias y te dejo un ejemplo.

horus

horus

muy amable de tu parte si me pudieras apoyar con el ejemplo que dices, en verdad gracias

Lycus HackerEmo

Lycus HackerEmo
Admin

estuve preguntando en el foro Qt Centre y esto es lo que me respondieron:

Usted necesita aprender cómo utilizar los valores de la envolvente en las consultas SQL. No sólo se necesitan para datos BLOB, que proporcionan seguridad frente a ataques de inyección SQL también. Aquí está un pequeño ejemplo de una ida y vuelta conseguir una imagen dentro y fuera de una base de datos:

Código:
#include <QApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QSqlQuery>
#include <QSqlError>
#include <QLabel>
#include <QFile>
#include <QByteArray>
#include <QVariant>

QPixmap doSaveAndLoadImage()
{
    /* Open an in-memory database. */
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName(":memory:");
    bool ok = db.open();

    QString sql = QString("CREATE TABLE T1(img BLOB)");
    QSqlQuery query(db);
    ok = query.exec(sql);

    QFile file("SomeImage.png");
    file.open(QIODevice::ReadOnly);
    QByteArray bytes = file.readAll();

    query.prepare("INSERT INTO T1(img) VALUES(:img)");
    query.bindValue(":img", QVariant(bytes));
    ok = query.exec();

    query.prepare("SELECT img FROM T1");
    ok = query.exec();
    ok = query.first();

    QPixmap pix;
    pix.loadFromData(query.value(0).toByteArray());

    return pix;
}




int main(int argc, char * argv[])
{
    QApplication a(argc, argv);
    QPixmap pix = doSaveAndLoadImage();

    QLabel lbl;
    lbl.setPixmap(pix);
    lbl.show();

    return a.exec();
}

https://qt-espanol.forosactivos.net

5Guardar imagenes directo en mysql con qtcreator [Solucionado] Empty acerca del ejemplo Lun Ene 25, 2010 11:30 pm

horus

horus

Bueno primero que nada muchas gracias por tu apoyo y disculpa la tardanza en contestar pero no he podido hechar a anda tu ejemplo en qtcreator me podrias apoyar con algun ejemplo ya en qtcretor? en serio disculpame pero aun estoy verde en esto jeje

6Guardar imagenes directo en mysql con qtcreator [Solucionado] Empty bueno ya pude guardarla Mar Ene 26, 2010 12:42 am

horus

horus

hola ya pude guardarla pero al momento de mostrarla en la etiqueta no sale bien la imagen
Código:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QMessageBox>
#include <qsqldatabase.h>
#include <QSqlError>
#include <QtSql>
#include <QFileDialog>
#include <QList>

#include <QDebug>
#include <QSqlQuery>
#include <QFile>
#include <QByteArray>
#include <QVariant>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
//////////////////////////////////////////////////
QPixmap MainWindow::buscala()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("memo");
    db.setUserName("root");
    db.setPassword("xxxxxxxx");
    bool ok = db.open();

QString sql = QString("CREATE TABLE T1(img BLOB)");
QSqlQuery query(db);
ok = query.exec(sql);

//---------------------------------------//
QString archivo_foto;
archivo_foto = QFileDialog::getOpenFileName(this,tr("Abrir Archivo"),tr("/home"),tr("Imagenes(*.png *.xpm *.*"));

QFile file(archivo_foto);
file.open(QIODevice::ReadOnly);
QByteArray bytes = file.readAll();
//---------------------------------------//



query.prepare("INSERT INTO T1(img) VALUES(:img)");
query.bindValue(":img", QVariant(bytes));
ok = query.exec();

query.prepare("SELECT img FROM T1");
ok = query.exec();
ok = query.first();

QPixmap pix;
pix.loadFromData(query.value(0).toByteArray());
return pix;
}
//////////////////////////////////////////////////
int MainWindow::sq()
{
QPixmap pix = buscala();
ui->label->setPixmap(pix);

    return 0;
}


Guardar imagenes directo en mysql con qtcreator [Solucionado] Pantallazofp.th

te edite el post ya que la imagen era muy grande. xD

Lycus HackerEmo

Lycus HackerEmo
Admin

mira en estos enlaces:
http://www.qtcentre.org/threads/25920-QPixmap-save()-doesn-t-work?highlight=Save+images+in+mysql
http://www.qtcentre.org/threads/24261-how-to-save-a-image-file-(-say-png-)-into-mysql-database?highlight=Save+images+in+mysql

http://doc.trolltech.com/4.6/qbytearray.html#toBase64
esto?
guardarlo en el database
y luego para restarar lo tienes k usar
http://doc.trolltech.com/4.6/qbytearray.html#fromBase64
y luego crear un imagen.

ese es todo el codigo?

https://qt-espanol.forosactivos.net

8Guardar imagenes directo en mysql con qtcreator [Solucionado] Empty wow ya se pudo Mar Ene 26, 2010 12:57 am

horus

horus

ya se pudo hacr el problema era que necesitaba ser LONGBLOB en vez de BLOB muchas gracias subo el codigo por si alguien mas lo necesita
Código:

////////  MainWindow.cpp /////////////////

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QMessageBox>
#include <qsqldatabase.h>
#include <QSqlError>
#include <QtSql>
#include <QFileDialog>
#include <QList>

#include <QDebug>
#include <QSqlQuery>
#include <QFile>
#include <QByteArray>
#include <QVariant>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
//////////////////////////////////////////////////
QPixmap MainWindow::buscala()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("memo");
    db.setUserName("root");
    db.setPassword("horusats");
    bool ok = db.open();

QString sql = QString("CREATE TABLE T2(img LONGBLOB)");
QSqlQuery query(db);
ok = query.exec(sql);

//---------------------------------------//
QString archivo_foto;
archivo_foto = QFileDialog::getOpenFileName(this,tr("Abrir Archivo"),tr("/home"),tr("Imagenes(*.png *.xpm *.*)"));

QFile file(archivo_foto);
file.open(QIODevice::ReadOnly);
QByteArray bytes = file.readAll();
//---------------------------------------//



query.prepare("INSERT INTO T2(img) VALUES(:img)");
query.bindValue(":img", QVariant(bytes));
ok = query.exec();

query.prepare("SELECT img FROM T2");
ok = query.exec();
ok = query.last();

QPixmap pix;
pix.loadFromData(query.value(0).toByteArray());
return pix;
}
//////////////////////////////////////////////////
int MainWindow::sq()
{
QPixmap pix = buscala();
ui->label->setPixmap(pix);

    return 0;
}

//////////// MainWindow.h ///////////////////////////
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>

namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
    public slots:
        QPixmap buscala();
        int sq();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H





Guardar imagenes directo en mysql con qtcreator [Solucionado] Pantallazo1uq.th

vuelvo a editarte la imagen, no necesitas que poner [img][/img]. lo que puedes hacer es donde dice Embed thumbnails of this image para que asi la imagen sea mas chica.

Lycus HackerEmo

Lycus HackerEmo
Admin

que bien que ya lo hayas solucionado xD. lastima que no ise nada para ayudarte.
seria una buena dia de que crearas un tutorial sobre eso xD Very Happy

https://qt-espanol.forosactivos.net

10Guardar imagenes directo en mysql con qtcreator [Solucionado] Empty Claro que desde luego que si Mar Ene 26, 2010 1:10 am

horus

horus

Con gusto hare un breve tutorial de como hice este ejemplo, me encantaria ayudar a tu foro aunque aun estoy iniciando en esto de c++ con QTCreator. No soy experto, pero tratare de explicarlo y haber si alguien que sepa mas del tema lo refina sale?

Lycus HackerEmo

Lycus HackerEmo
Admin

muchas gracias por ayudar en el foro.

yo tambien soy principiante en esto de C++ y Qt.
tal vez esto te va a interesar. en mi blog TuxMaya creare una serie de articulos relacionados con Qt mas adelante lo agregare al foro. el proximo articulo lo hare este fin de semana y ya se entrara de ello a la programacion. creare unos ejemplos de como crear un pequeno programita escribiendo el codigo y de como disenarlo con el qt designer xD

https://qt-espanol.forosactivos.net

Contenido patrocinado



Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.