Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   funciones Update e Insert usando libmysql.dll (https://www.clubdelphi.com/foros/showthread.php?t=38416)

Pook 14-12-2006 01:30:04

funciones Update e Insert usando libmysql.dll
 
Pues verán, estoy probando la conexión a mysql desde delphi y a la hora de leer datos desde una bbdd de una página web todo me tira bien, pero hete aqui que no se como hacer ni el update de una tupla ni el insert de una nueva, así que si alguno sabe como hacerlo le ruego me lo explique, o en su defecto, me dejase algún ejemplillo.

Aqui una muestra de mi código:

Código Delphi [-]
procedure TItems.BModClick(Sender: TObject);
  var
    Cadena: string;
  begin
    Conexion; //Crea la conexión a la bbdd
    Trabajando; //Lee una serie de opciones
    Cadena := 'UPDATE bbdd SET ';
    Cadena := Cadena + 'foto = "'+EDirFoto.Text+'"';
    Cadena := Cadena + ' Nombre = "'+ENombre.Text+'"';
    Cadena := Cadena + ' Clase = "'+EClase.Text+'"';
    Cadena := Cadena + ' Peso = "'+EPeso.Text+'"';
    Cadena := Cadena + ' Slots = "'+ESlots.Text+'"';
    Cadena := Cadena + ' Ataque = "'+EAtaque.Text+'"';
    Cadena := Cadena + ' Propiedad = "'+EProp.Text+'"';
    Cadena := Cadena + ' NivelA = "'+ENivel.Text+'"';
    Cadena := Cadena + ' NivelR = "'+ENivReq.Text+'"';
    Cadena := Cadena + ' Drops = "'+EDrop.Text+'"';
    Cadena := Cadena + ' Descripcion = "'+MDesc.Text+'"';
    Cadena := Cadena + ' Trabajos = "'+Trabajos+'"';
    Cadena := Cadena + ' WHERE Nombre="'+ENombre.Text+'";';
    mysql_query(@mysqlcon, PChar(Cadena));
    presults := mysql_store_result(@mysqlcon);
  end;

El código se ejecuta sin errores, pero me da de que la función mysql_query no funciona en un update ni en un insert...

Gracias de antemano.

AzidRain 14-12-2006 04:00:10

Seré curioso?? Que usas para conectarte...tu codigo se parece mucho a como se hace en PHP

roman 14-12-2006 05:58:24

Da la impresión de que utiliza directamente libmysql.dll através de alguna interfaz pascal como por ejemplo mysql.pas. Yo, en su momento llegué a usarla e incluso me programé algunas clases que facilitaban la labor pero pues es hacerla demasiado al héroe, pienso yo. Y sí, se parece mucho a php porque se basan en lo mismo.

// Saludos

Pook 14-12-2006 21:56:37

Hola

Roman está en lo cierto, uso el mysql.pas y el procedure de conexión es el siguiente:

Código Delphi [-]
procedure TItems.Conexion;
  var
    cadena: string;
  begin
      mysql_connect(@mysqlcon, 'DIRECCIONIP', PChar('USUARIODELABBDD'), PChar('PASSWORDDELUSER'));
    if mysqlcon.net.last_errno <> 0 then
      begin
        ShowMessage (Trim(mysqlcon.net.last_error));
        exit;
      end;
    if mysql_select_db(@mysqlcon, 'BASEDEDATOS') <> 0 then
      begin
        mysql_close(@mysqlcon); // Desconectar
        ShowMessage('No se pudo abrir la base de datos "BASEDEDATOS"');
        exit;
      end;
  end;

Ese el el procedure de conexión... En cuanto a la duda que expuse, todavía no he encontrado una solución... Roman, has dicho que hiciste algo con esta interfaz, no tienes alguna idea que pueda ayudarme? te estaría muy agradecido ^^

Cita:

Perdón por la gilipollez, he quedado como un memo... como siempre, el error reside en lo más fácil...
El error era simple y llanamente añadirle al string de
Código Delphi [-]
Cadena := Cadena + 'foto = "'+EDirFoto.Text+'"';
    Cadena := Cadena + ' Nombre = "'+ENombre.Text+'"';
    Cadena := Cadena + ' Clase = "'+EClase.Text+'"';
    Cadena := Cadena + ' Peso = "'+EPeso.Text+'"';
    Cadena := Cadena + ' Slots = "'+ESlots.Text+'"';
una mísera "," entre columna y columna, por eso no podia insertar la tupla, porque se creia que estaba intentando insertar una única columna... xD... sorry por las molestias


La franja horaria es GMT +2. Ahora son las 14:01:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi