Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Insertar fecha a la base de datos (https://www.clubdelphi.com/foros/showthread.php?t=81220)

borlandpablo 23-10-2012 11:50:11

Insertar fecha a la base de datos
 
Buenas a todos, como hago para insertar la fecha actual en la base de datos? yo lo que hago es esto y me da error.

Código:

    XDatos->QCatalogos->Open();
    XDatos->QCatalogos->Append();
    while(!XDatos->QCatalogos->Eof)
    {
      XDatos->QCatalogos->SQL->Text = "insert into catalogos(Fecha_Actual) values (sysdate)";
      XDatos->QCatalogos->Next();
    }
    XDatos->QCatalogos->Post();
    XDatos->QCatalogos->Close();


ecfisa 23-10-2012 15:24:05

Hola borlandpablo.

No sé con que componentes estas trabajando, pero en líneas generarles sería:
Código:

  XDatos->QCatalogos->Close();
  XDatos->QCatalogos->SQL->Clear();
  XDatos->QCatalogos->SQL->Add("INSERT INTO CATALOGOS(FECHA_ACTUAL)");
  XDatos->QCatalogos->SQL->Add("VALUES(:PFECHA)");
  XDatos->QCatalogos->ParamByName("PFECHA")->Value = Date();
  XDatos->QCatalogos->ExecSQL();

Por ejemplo, si estas utilizando ADO, la línea donde asignas el valor al parámetro sería:
Código:

  XDatos->QCatalogos->Parameters->ParamByName("PFECHA")->Value = Date();
Saludos.

borlandpablo 24-10-2012 09:38:12

Gracias por contestar ecfisa, pero me da error. Me dice: " no se puede insertar o cambiar el registro porque se necesita un registro relacionado en la tabla 'Distribuidor' ".

La relación de la base de datos es así:
Código:

DISTRIBUIDOR                        CATALOGOS                                    TIENDAS
distribuidor_id (autonumérico)  catalogo_id(autonumérico)                  tienda_id           
Nombre                          Titulo                                    Nombre
Telefono                        Foto                                      Logo
Logo                            fecha_inicial                              distribuidor_id
                                fecha_fin
                                fecha_actual
                                distribuidor_id(numero)
                                tienda_id(numero)

No sé porque tengo que relacionarlo, ya que solo quiero rellenar el campo "fecha_actual".

Un saludo.

dmartinezn 25-10-2012 18:40:39

Primeramente antes de realizar la insercion en la tabla CATALOGOS debes de conocer cual fue el distribuidor_id que se inserto en la tabla DISTRIBUIDOR.
Asi que te recomiendo:
1 - Haz una consulta a la tabla distribuidor para que obtengas el distribuidor_id que necesitas.
2 - Con el distribuidor_id que obtienes de la consulta realiza la insercion de tus datos, como dice el Sr. Eficsa.
Código:

XDatos->QCatalogos->SQL->Add("INSERT INTO CATALOGOS(FECHA_ACTUAL,distribuidor_id)");
  XDatos->QCatalogos->SQL->Add("VALUES(:PFECHA,:distribuidor_id)");

Acuerdate q tienes una relacion entre tablas y distribuidor_id pasa como llave, lo otro seria decirle a distribuidor_id q acepte nulos, cosa que no estaría bien.

borlandpablo 26-10-2012 12:14:16

Buenas, yo me creé una variable global para poderlo utilizar en la pantalla donde tengo que hacer el insert

Código:

void __fastcall TXGestionTienda::ComboBox1Change(TObject *Sender)
{
  XDatos->QDistribuidor->Close();
  XDatos->QDistribuidor->SQL->Text = "select * from distribuidor where nombre = '"+ComboBox1->Text+"'";
  XDatos->QDistribuidor->Open();
  codigoD = XDatos->QDistribuidorDistribuidor_id->Value;
  ShowMessage(codigoD);
}

Con eso ya he obtenido el valor del distribuidor_id y cuando hago el insert me sigue diciendo que hay error.

dmartinezn 26-10-2012 16:55:22

Seria bueno que digeras que Gestor de BD estas usando, todos a la hora de insertar no aceptan los mismos parametros.
Ejemplo, ese que usa aca:
Código:

XDatos->QCatalogos->SQL->Add("INSERT INTO CATALOGOS(FECHA_ACTUAL)");
  XDatos->QCatalogos->SQL->Add("VALUES(:PFECHA)");

Funciona perfectamente en access, pero no asi en mysql.


La franja horaria es GMT +2. Ahora son las 02:24:23.

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