![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Humilde opinion
Efectivamente tiene razon Neftali y ademas No debes usar AdoQuery.ExecSql; en una consulta, debes usar .open. ExecSql se usa para sentecias SQL Insert, Update y Delete.
A mi manera quedaria asi: DbFarmacia.ADOQuery1.Close; DbFarmacia.ADOQuery1.Sql.Clear; DbFarmacia.ADOQuery1.SQL.Add('select * from DATOS'); DbFarmacia.ADOQuery1.Open; DbFarmacia.ADOQuery1.First; |
|
#2
|
||||
|
||||
|
Aver compañeros, hagamos la evaluación del código
Esta línea es correcta aúnque está de más ya que cuando abres una consulta el componente query se encarga de establecer la conexión DBFARMACIA.ADOConnection1.Open; Estas dos líneas son incorrectas, ya que primero debes establecer el valor de la propiedad Sql del componente TAdoQuery DbFarmacia.ADOQuery1.Open; DbFarmacia.ADOQuery1.Active; La mejor manera de establecer el valor de la propiedad Sql es de la siguiente manera: DbFarmacia.ADOQuery1.SQL.Text := 'select * from DATOS' La razón de ello es que no requieres invocar los métodos clean y close, :P ya que el primero se sobrescribe, y el segundo es disparado al ser modificada la propiedad. Luego esta línea es incorrecta ya que como bien mencionan, las consultas que devuelven datos serán ejecutadas con Open DbFarmacia.ADOQuery1.ExecSQL; Esta línea está de más, ya que cuando ejecutas una consulta, ado coloca el cursor en la primera fila. DbFarmacia.ADOQuery1.First; Esta línea es correcta DbFarmacia.ADOQuery1.Close; Ateníendonos a lo comentado previamente, esta línea está de más. dbfarmacia.ADOQuery1.SQL.Clear; suerte |
|
#3
|
||||
|
||||
|
gracias a todo.........
Bueno la verdad es que hace mucho tiempo no desarrollaba algun sistema y la primera vez que uso ADO. Eso no disculpa mi deshorden como lo dijo neftali, pero gracias a todos por sus respuestas esto me ha servido mucho y con sus consejos espero mejorar y optimizar en mucho mi codigo. Ya voy a probar en este momento sus consejos y les traigo noticias |
|
#4
|
||||
|
||||
|
Bueno y en conclusion que ?
Para mi la sentencia tendria que quedar asi: Suponiendo que la conexion esta hecha y activa. Esto lo veo importante ya que si se usa el query en otra ocasion este tendra que estar vacio para llenarlo con otros datos, me parece una buena practica. Saludos |
|
#5
|
|||
|
|||
|
Caral, andas algo equivocado en cuanto a ExecSQL. Este método sirve para ejecutar sentencias que no devuelven registros, tales como Update, Insert y Delete...
Saludos... |
|
#6
|
||||
|
||||
|
Maeyanes que bueno que me lo dices ya que lo uso por todos lados.
Voy a empezar a quitarlo, creia que dejaba el query limpio, bueno asi parecian sus siglas en ingles exec= escapar, sacar y sql, pues el sql. Gracias por la aclaracion lo tomare en cuenta. Saludos |
|
#7
|
|||
|
|||
|
En todo caso sería Exec = Execute = Ejecutar...
![]() Y el método Clear de la propiedad SQL sirve para el propósito que imaginabas que hacía ExecSQL... ![]() Saludos... |
|
#8
|
||||
|
||||
|
Gracias Maeyanes
El que diga que no aprende aqui, no ha visitado este club nunca. Saludos y gracias Maestro. Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| consulta con un adoQuery | manu | Conexión con bases de datos | 4 | 29-09-2006 00:17:48 |
| Problema con AdoQuery | marylobita | Conexión con bases de datos | 3 | 04-05-2006 19:17:54 |
| Consulta sobre el componente ADOQuery | s_e_montes | Varios | 2 | 02-02-2006 20:08:36 |
| Problema con ADOQuery | Sr.Scorpion | Conexión con bases de datos | 8 | 17-04-2005 20:53:02 |
| Problema ADOQuery | GIVO | Providers | 1 | 29-08-2003 17:30:58 |
|