Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2012
elrodrix elrodrix is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 32
Poder: 0
elrodrix Va por buen camino
Problema busqueda varios campos

BASE DE DATOS: MYSQL
DELPHI 5

Que tal? .. quiero hacer la busqueda de varios campos.

Primero quise realizar la busqueda por medio de un Query ... usando un ADOQuery ... el problema es que tengo un datetimepicker que guardo la fecha en formato DD-MM-AAAA ... para insertar la fecha hago una conversion, ya que MYSQL permite el formate AAAA-MM-DD ... entonces cuando lanzo un SELECT no me devuelve NADA porque el formato de la fecha se manda como DD-MM-AAAA ... y la propiedad ADOQuery.SQL.ADD('') no me permite realizar la conversion de formato. ENTONCES COMO HAGO'?


Se me ocurrio hacer la busqueda con un LOCATE. Pero resulta que la busqueda la tengo que hacer preguntando varios campos (mi tabla a consultar tiene multiples llaves primarias), y mi problema es que no se como se hace


Lei que hay que mandar una variable, asi como Table.Locate('Mes;Dia',VarArrayof([Mes,Dia]),[]) ... pero no tengo idea como se crea el array y como se le asigna valores.

Mi idea seria crear el Array, y mandarle como valor lo que hay en un edit. Por ej

Variable1:=Edit1.text
Variable2:=DateTimePicker1.date
Variable3:=strtoint(Edit2.text)

Algo asi pienso que es, como se hace esto en un array para mandarlo como parametro a un LOCATE??

GRACIAs.
Responder Con Cita
  #2  
Antiguo 22-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola elrodrix y bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra guía de estilo.

Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 22-10-2012
elrodrix elrodrix is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 32
Poder: 0
elrodrix Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola elrodrix y bienvenido a Club Delphi

Como a todos los que se inician te invitamos a que leas nuestra ............

Saludos y gracias por tu colaboración.
Muchas gracias. Mientras voy leyendo no podrias aunque sea tirar una idea de como podria solucionar mi problema? ... saludos
Responder Con Cita
  #4  
Antiguo 22-10-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por elrodrix Ver Mensaje
[...] entonces cuando lanzo un SELECT no me devuelve NADA porque el formato de la fecha se manda como DD-MM-AAAA [...]
Ayudaría sobremanera que nos mostraras cómo lanzas ese Select (un trozo de código vale más que mil tweets).

Quizá sólo te falta hacer la conversión al formato 'yyyy-mm-dd' usando la función FormatDateTime.
Responder Con Cita
  #5  
Antiguo 22-10-2012
Avatar de bosster_018
bosster_018 bosster_018 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Bolivia
Posts: 127
Poder: 15
bosster_018 Va por buen camino
Tal como lo menciona Al_Gonzalez....

Como ejemplo con un DateTimePicker y un Boton

en el boton pones el formatDateTime:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  fecha : string;
begin
  fecha:= FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date);
  ShowMessage(fecha);
end;

Con esto le das el formato que quieras a tu fecha, muy bueno para trabajar con base de datos por ejemplo MYsql y Sql

Saludos!
Responder Con Cita
  #6  
Antiguo 23-10-2012
elrodrix elrodrix is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 32
Poder: 0
elrodrix Va por buen camino
Cita:
Empezado por bosster_018 Ver Mensaje
Tal como lo menciona Al_Gonzalez....

Como ejemplo con un DateTimePicker y un Boton

en el boton pones el formatDateTime:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  fecha : string;
begin
  fecha:= FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date);
  ShowMessage(fecha);
end;

Con esto le das el formato que quieras a tu fecha, muy bueno para trabajar con base de datos por ejemplo MYsql y Sql

Saludos!
Hoy voy a probar como dices y comento ... ahora con LOCATE de ADOTable como podria mandar como parametro para consultar por 3 campos?
Responder Con Cita
  #7  
Antiguo 23-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bosster_018 Ver Mensaje
Con esto le das el formato que quieras a tu fecha, muy bueno para trabajar con base de datos por ejemplo MYsql y Sql
SQL no es ninguna base de datos, es un lenguaje.
Responder Con Cita
  #8  
Antiguo 23-10-2012
cancun cancun is offline
Miembro
 
Registrado: may 2003
Ubicación: Cancun, México
Posts: 114
Poder: 21
cancun Va por buen camino
Hola


La función Locate sería así:

Código:
if Table1.Locate('Campo1;Campo2;Campo3',VarArrayOf([Valor1,Valoe2,Valor3]),[]) then //Encontrado

Para hacer una condición por varios campos se usa el operador AND

Código:
where Campo1='xxxx' And Campo2>10 And Campo3=200 And Campo4<>'1'
Para las fechas puedes usar esta función

Código:
function AnsiQuotedDate(Fecha:TDateTime):String;
begin
  Result:=''''+IntToStr(Year(Fecha))+'-'+IntToStr(Month(Fecha))+'-'+IntToStr(Day(Fecha))+'''';
end;
y la llamas de este modo

Código:
  Tabla1.ParamByName('Fecha').AsDate:=AnsiQuotedDate(DateTimePicker1.Date);

  Query1.SQL.Strings[3]:='Where Fecha='+AnsiQuotedDate(DateTimePicker1.Date);

Bueno espero te sirva de algo esta información

Saludos
__________________
Cancun, Q.Roo, México
Responder Con Cita
  #9  
Antiguo 26-10-2012
Avatar de bosster_018
bosster_018 bosster_018 is offline
Miembro
 
Registrado: nov 2009
Ubicación: Bolivia
Posts: 127
Poder: 15
bosster_018 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
SQL no es ninguna base de datos, es un lenguaje.

No me di cuenta de mi error....

Ahora que leo de nuevo las definiciones de cada palabra... Lo diré de nuevo:

Cita:
Bueno para utilizar con gestores de Base de datos MySQL y SQL server
Ya que el SQL es un lenguaje de consulta estructurado....

Cada vez aprendo más.... Gracias a ustedes...

Saludos!
Responder Con Cita
  #10  
Antiguo 27-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por bosster_018 Ver Mensaje
No me di cuenta de mi error.... Bueno para utilizar con gestores de Base de datos MySQL y SQL server
Te refieres a MS Sql server, ¿verdad?
Responder Con Cita
  #11  
Antiguo 27-10-2012
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Te refieres a MS Sql server, ¿verdad?
O quizá se refiere a Firebird SQL Server, que también es popular.
Responder Con Cita
  #12  
Antiguo 27-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
O quizá se refiere a Firebird SQL Server, que también es popular.
El departamento de marketing de Microsoft hizo una buena jugada en poner a su RDBMS de nombre "SQL Server", así todas las personas que no entienden mucho del tema piensan que "SQL server" es el de microsoft, y que el resto son "otra cosa".

Si llegan a ser fabricantes de coches, le ponen de nombre "coche" y así todo el mundo asocia "coche" con el MS coche
Y los demás no son "coches", son vehículos a motor con 4 ruedas y volante, de nombre ford, renault, nissan, etc. pero el auténtico "coche" es el de microsoft, el "MS coche"
Responder Con Cita
  #13  
Antiguo 27-10-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues eso tiene sus antecedentes históricos desde que Estados Unidos decidió llamarse así, Estados Unidos de América. De esa forma identifican todo el continente con ellos, como se desprende de la doctrina Monroe.

No es de extrañar que sus empresas hagan cosas similares.

// Saludos
Responder Con Cita
  #14  
Antiguo 27-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Tienes razón, creo que el nombre oficial es "Estados Unidos Mexicanos", situado en América del Norte y que limita al norte con los "Estados Unidos de América".
Entonces México también es "Estados Unidos de América", porque está en América. Y entonces también es "norteamérica".
Responder Con Cita
  #15  
Antiguo 27-10-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En efecto, el nombre oficial de México es Estados Unidos Mexicanos. Tampoco es que nuestros fundadores hayan sido muy originales :s con eso de Estados Unidos. Pero al menos tenemos el apelativo México de antecedentes prehispánicos.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Top con varios campos trex2000 MS SQL Server 1 04-10-2006 22:12:15
Problema campos de busqueda Luis Castillo Firebird e Interbase 7 06-01-2006 17:55:23
Problema campos de busqueda Luis Castillo Varios 2 02-11-2005 11:47:31
campos de busqueda................. David J. Conexión con bases de datos 3 06-07-2004 18:34:36
Busqueda por 2 campos a la vez CJRE SQL 3 26-05-2004 19:48:36


La franja horaria es GMT +2. Ahora son las 01:39:22.


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
Copyright 1996-2007 Club Delphi