Proyecto AjpdSoft
Principal
· Inicio
· Buscar
· Contactar
· Descargas
· Enciclopedia
· Estadísticas
· Eventos
· Foros
· Manuales, Artículos
· Nuestra historia
· Quiénes somos
· Recomiéndanos
· Temas
· Top 10
· Trucos Delphi, PHP, Java, Visual Studio
· Tu cuenta
Descargas

Últimas Descargas
· Ejemplo acceso nativo a SQLite con ADO.Net en C# .Net

· AjpdSoft Acceso MySQL Android

· AjpdSoft Acceso SQLite C# ADO.NET

· AjpdSoft Acceso MySQL con ADO.NET en C#

· AjpdSoft Gestión Integral código fuente Delphi

· AjpdSoft Indexar Texto PDF C# iTextSharp

· AjpdSoft Capturar Pantalla C#

· AjpdSoft Gestión de Transportes Ficheros instalación manual

· AjpdSoft Separar Páginas PDF código fuente C# C Sharp .Net

· AjpdSoft Convertir Texto a PDF código fuente VB.Net

· AjpdSoft Generador y Lector códigos QR VB.Net

· AjpdSoft Socket VB.Net

· AjpdSoft Acceso nativo MySQL enlazado VB.Net

· AjpdSoft Acceso nativo MySQL VB.Net

· AjpdSoft Envío SMS puerto serie módem GSM VB.Net


Lo más descargado
· AjpdSoft Registro de OCX y DLL Código Fuente Delphi

· AjpdSoft Generador de códigos de barras

· AjpdSoft Conversor Hexadecimal, Decimal, Texto - Código Fuente Delphi

· Borland Database Desktop 7.0

· AjpdSoft Aviso cambio IP pública

· AjpdSoft Inventario PCs

· AjpdSoft Administración Bases de Datos Código Fuente Delphi

· AjpdSoft Facturación Código Fuente Delphi

· AjpdSoft Puerto Paralelo Código Fuente Delphi

· AjpdSoft Inventario PCs Código Fuente Delphi

· Cómo trabajar con tablas Paradox en red

· Cómo compilar un fichero MDB Base de Datos Access

· AjpdSoft Aviso cambio IP pública Código Fuente Delphi

· AjpdSoft Conexión BD Visual Basic .Net

· AjpdSoft Agenda Código Fuente Delphi

Términos enciclopedias
Últimos
· CSRF
Enc.: Informática

· SIG
Enc.: Informática

· Ruby
Enc.: Informática

· DATEDIFF (fecha1, fecha2)
Enc.: Funciones MySQL

· DaysBetween (fecha1, fecha2)
Enc.: Funciones Delphi

· Telnet
Enc.: Informática

· OSI
Enc.: Informática

· LTO
Enc.: Informática

· DoS, DDoS
Enc.: Informática

· NVRAM
Enc.: Informática

· DATE_SUB (date, INTERVAL)
Enc.: Funciones MySQL

· CURDATE ()
Enc.: Funciones MySQL

· DES
Enc.: Informática

· RSA
Enc.: Informática

· VMFS
Enc.: Informática


Lo más visitado

· Attrib
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· At
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· Arp
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· URL
Enc.: Informática

· net use unidad: \\nombrepc\recursocompartido
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· bootcfg addsw
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· MSKSrvr.exe
Enc.: Procesos en memoria

· ODBC
Enc.: Informática

· Mozilla Firefox
Enc.: Programas/Software

· xcopy
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· Call
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· Gpupdate
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· netstat -n
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· Assoc
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)

· net view
Enc.: Comandos Windows XP/Windows 2000/2003 (consola MS-DOS)
Eventos
Junio

DLMMJVS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Consejos
Lenguajes
Selecciona Idioma de la Interfaz:

Webs recomendadas
Orasite.com



Coloca tu web aquí
Language english
English
Tratamiento de fechas con Delphi y MySQL para las versiones 3 y 4 de MySQL - Delphi
Lenguaje de programación Borland Delphi


Este ejemplo en Delphi 6 y MySQL 3.x, MySQL 4.x, explica cómo formatear una fecha para insertar/actualizar un registro de tipo DATETIME y otro de tipo DATE de una tabla MySQL.

Para ello, en el caso de MySQL 4.x es suficiente con pasar como parámetro un valor de tipo ftDateTime, en la consulta SQL no es necesario formatear la cadena.

En el caso de MySQl 3.x es necesario formatear la fecha y hora que se le pasará en formato texto ftString y habrá que formatear la consulta SQL de la siguiente forma:
* Para campos de tipo DATETIME: STR_TO_DATE(nombre_campo, "%d/%c/%Y %H:%i:%s")
* Para campos de tipo DATE: STR_TO_DATE(nombre_campo, "%d/%c/%Y")


A continuación os mostramos un ejemplo completo desarrollado en Delphi, para este ejemplo serán necesarios varos componentes (TForm, TQuery, etc). Lo importante es la consulta SQL y el parámetro que se le pasa:

procedure TFormMenuPrincipal.guardarIPBD (ip : string);
begin
  be.Panels.Items[1].Text := 'Guardando nueva IP en Base de Datos';
  be.Refresh;
  try
    md.tcConsulta.Active := false;
    md.BD.LoginPrompt := false;
    md.BD.Connected := false;
    md.BD.HostName := vtIPServidorBD;
    md.BD.Port := vtPuertoServidorBD;
    md.BD.Database := vtBDServidorBD;
    md.BD.User := vtUsuarioConexionBDServidorBD;
    md.BD.Password := vtContrasenaConexionBDServidorBD;
    md.BD.Connected := true;
    md.tcConsulta.SQL.Clear;
    md.tcConsulta.SQL.Add('SELECT USUARIO, CONTRASENA ' +
        'FROM ip WHERE USUARIO = :pUsuario');
    md.tcConsulta.ParamByName('pUsuario').DataType := ftstring;
    md.tcConsulta.ParamByName('pUsuario').Value := 
        AnsiUpperCase (vtUsuarioServidorBD);
    md.tcConsulta.Open;
    if md.tcConsulta.RecordCount > 0 then
    begin
      if md.tcConsulta.FieldByName('CONTRASENA').AsString = 
          vtContrasenaServidorBD then
      begin
        md.tcConsulta.Close;
        md.tcConsulta.SQL.Clear;
        if vtServidorBDProtocolo <> 'mysql-4.1' then
          md.tcConsulta.SQL.Add('UPDATE ip SET IPACTUAL = :pIP,' +
              ' FECHACAMBIO = :pFecha' +
              ' WHERE USUARIO = :pUsuario')
        else
          md.tcConsulta.SQL.Add('UPDATE ip SET IPACTUAL = :pIP,' +
              ' FECHACAMBIO = STR_TO_DATE(:pFecha, "%d/%c/%Y %H:%i:%s")' +
              ' WHERE USUARIO = :pUsuario');
        md.tcConsulta.ParamByName('pUsuario').DataType := ftstring;
        md.tcConsulta.ParamByName('pUsuario').Value := AnsiUpperCase (vtUsuarioServidorBD);
        md.tcConsulta.ParamByName('pIP').DataType := ftstring;
        md.tcConsulta.ParamByName('pIP').Value := ip;
        if vtServidorBDProtocolo <> 'mysql-4.1' then
          md.tcConsulta.ParamByName('pFecha').DataType := ftDateTime
        else
          md.tcConsulta.ParamByName('pFecha').DataType := ftstring;
        md.tcConsulta.ParamByName('pFecha').Value := now;
        md.tcConsulta.ExecSQL;
        errorGuardarBD := false;
        be.Panels.Items[1].Text := 'IP guardada en Base de Datos correctamente';
        be.Refresh;
        if vtGuardarLog then
          mLog.Lines.Add(DateToStr (date) + ' - ' + TimeToStr (time) +
              ' IP guardada correctamente en Servidor Base de Datos');
      end
      else
      begin
        errorGuardarBD := true;
        be.Panels.Items[1].Text := 'Error al guardar IP en BD: contraseña no válida';
        be.Refresh;
        if vtGuardarLog then
          mLog.Lines.Add(DateToStr (date) + ' - ' + TimeToStr (time) +
              ' Error al conectar al Servidor de BD: la contraseña del usuario ' +
              vtUsuarioServidorIP + ' no es correcta');
      end;
    end
    else
    begin
      md.tcConsulta.Close;
      md.tcConsulta.SQL.Clear;
      if vtServidorBDProtocolo <> 'mysql-4.1' then
        md.tcConsulta.SQL.Add('INSERT INTO ip (IPACTUAL, USUARIO, CONTRASENA, ' +
            'FECHAALTA, FECHACAMBIO) ' +
            'VALUES (:pIP, :pUsuario, :pContrasena, :pFechaAlta, :pFechaCambio)')
      else
        md.tcConsulta.SQL.Add('INSERT INTO ip (IPACTUAL, USUARIO, CONTRASENA, ' +
            'FECHAALTA, FECHACAMBIO) ' +
            'VALUES (:pIP, :pUsuario, :pContrasena, ' +
            'STR_TO_DATE(:pFechaAlta, "%d/%c/%Y"), ' +
            'STR_TO_DATE(:pFechaCambio, "%d/%c/%Y %H:%i:%s"))');
      md.tcConsulta.ParamByName('pUsuario').DataType := ftstring;
      md.tcConsulta.ParamByName('pUsuario').Value := 
          AnsiUpperCase (vtUsuarioServidorBD);
      md.tcConsulta.ParamByName('pIP').DataType := ftstring;
      md.tcConsulta.ParamByName('pIP').Value := ip;
      md.tcConsulta.ParamByName('pContrasena').DataType := ftstring;
      md.tcConsulta.ParamByName('pContrasena').Value := vtContrasenaServidorBD;
      if vtServidorBDProtocolo <> 'mysql-4.1' then
        md.tcConsulta.ParamByName('pFechaAlta').DataType := ftDateTime
      else
        md.tcConsulta.ParamByName('pFechaAlta').DataType := ftstring;
      md.tcConsulta.ParamByName('pFechaAlta').Value := now;
      if vtServidorBDProtocolo <> 'mysql-4.1' then
        md.tcConsulta.ParamByName('pFechaCambio').DataType := ftDateTime
      else
        md.tcConsulta.ParamByName('pFechaCambio').DataType := ftString;
      md.tcConsulta.ParamByName('pFechaCambio').Value := now;
      md.tcConsulta.ExecSQL;
      errorGuardarBD := false;
      be.Panels.Items[1].Text := 'IP guardada en BD correctamente';
      be.Refresh;
      if vtGuardarLog then
        mLog.Lines.Add(DateToStr (date) + ' - ' + TimeToStr (time) +
            ' IP guardada correctamente en Servidor Base de Datos (el usuario ' +
            vtUsuarioServidorBD + ' se ha añadido correctamente');

    end;
    md.tcConsulta.Close;
    md.bd.Disconnect;
  except
    on E : Exception do
    begin
      errorGuardarBD := true;
      be.Panels.Items[1].Text := 'Error al guardar IP en Base de Datos';
      be.Refresh;
      if vtGuardarLog then
        mLog.Lines.Add(DateToStr (date) + ' - ' + TimeToStr (time) +
            ' Error al conectar al Servidor de BD ' + ip + ': [' + 
            E.ClassName + '] ' +
            e.Message);
    end;
  end;
end;









Publicado el: 2006-07-06

Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz