Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Editar A Mano Datos En Firebird

He conseguido acceder a una tabla de Bdatos Firebird. Uso los componentes IBExpert: IBDataBase, IBTransaction, IBQuery, IBUpDateSQL y DataSource más un DBGrid y DBNavigator. Puedo guardar datos e imágenes en el DBGrid, pero el Navigator me da muchos errores. Apenas tiene código. Sólo la mera conexión. Me gustaría poder editar, modificar etc. con loss DBEdit y un DBImage. El caso es que no sé por dónde empezar. ¿Alguién me puede decir dónde puedo encontrar ejemplos de código para este punto?
Espero no salirme de cauce haciendo esta pregunta. Me he roto la cabeza para conseguir llegar a este punto.
Gracias.
Responder Con Cita
  #2  
Antiguo 12-03-2013
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
¿Y qué errores son esos que te da? Sería conveniente que ahondaras en la explicación de lo que sucede.

// Saludos
Responder Con Cita
  #3  
Antiguo 12-03-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
No hay código, sólo conexión

Se me ocurre pensar que tal vez deba colocar un IBTable para centrar el trasiego a una tabla. Hasta otra.
Responder Con Cita
  #4  
Antiguo 14-03-2013
Avatar de Young
Young Young is offline
Miembro
 
Registrado: abr 2006
Ubicación: San Felipe, Chile
Posts: 86
Poder: 19
Young Va por buen camino
Para trabajar con IBExpert en la edición de una tabla te recomiendo que uses IBDataset, para eso supongamos que tienes una tabla cliente, en la propiedad SQL del Dataset ingresas lo siguiente:

Código SQL [-]
SELECT * FROM CLIENTES

Deberás tener el componente enlazado a IBDatabase e IBTransaction correspondiente. Posteriormente haces click derecho sobre el componente dataset y seleccionas la opción de menú Dataset Editor, veras que esta seleccionado el nombre de la tabla y en resumidas cuentas pulsas los botones "Get Table Fields", "Dataset Defaults", "Select Primary Keys" y finalmente "Generate SQL". Todo esto para definir los campos que serán actualizados (todos en este caso), la llave primaria y crear las sentencias sql necesarias para insertar, modificar y eliminar.

Luego y trabajas el dataset como cualquier otro:
Código Delphi [-]
IBDataset1.Append;
..
IBDataset1.Edit;
..
IBDataset1.Delete:
..
IBDataset2.Post;

Espero que te sirva de orientación.

Saludos.
Responder Con Cita
  #5  
Antiguo 14-03-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Gracias, parece tan fácil... pero ya veremos.

Muchas gracias, lo había hecho pero se ve que no del todo bien. Sólo funcionaba el append/insert de altas del navegador. El refresh me daba error. Lo volveré a intentar.
Responder Con Cita
  #6  
Antiguo 15-03-2013
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 14
beginner01 Va por buen camino
Hola!

Que error es el que te da?
Responder Con Cita
  #7  
Antiguo 15-03-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
No va el Refresh del Navegador

Como digo, me da error el Refresh del Navegador y también la modificación de registros. No pongo el error literal porque no lo tengo a mano.
Gracias.
Responder Con Cita
  #8  
Antiguo 10-04-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Firebird me funciona perfectamente.

Ya lo tengo todo en marcha.
Responder Con Cita
  #9  
Antiguo 10-04-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que te hace falta leer "la otra guía de estilo"
Responder Con Cita
  #10  
Antiguo 10-04-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
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
██████████

Última edición por Al González fecha: 10-04-2013 a las 19:43:00. Razón: Autocensura
Responder Con Cita
  #11  
Antiguo 05-05-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Cita:
Empezado por bulc Ver Mensaje
Ya lo tengo todo en marcha.
Código Delphi [-]
//Quiero ordenar la tabla por el campo 'ELEMENTO'
//Al usar este código me da el error: Token unknown -line2, column 1, SELECT
SQLQuery1.Close;
SQLQuery1.SQL.Add('SELECT * FROM NEW_TABLE ORDER BY ELEMENTO');
SQLQuery1.Open;

El caso es que cuando doy la orden en otra Aplicación (con la misma tabla) donde pruebo las ordenes, me funciona.
¿Alguien sabe qué hago mal? Gracias.
Responder Con Cita
  #12  
Antiguo 05-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Para empezar, cambiar el .add por .text ya que de esa forma en cada pasada por ahí vas añadiendo (Add) al código que tenga

Código Delphi [-]
SQLQuery1.Close; 
SQLQuery1.SQL.Text = 'SELECT * FROM NEW_TABLE ORDER BY ELEMENTO'; 
SQLQuery1.Open;
Responder Con Cita
  #13  
Antiguo 05-05-2013
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 bulc.

Agregando algo a lo que correctamente te señaló Casimiro, cuando utilices el método Add, siempre antepone la llamada al método Clear para borrar de la lista todas las cadenas previas.
Código Delphi [-]
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(....
Pero sigo coincidiendo que cuando se trata de una consulta que ocupa sólo una línea es mucho mejor usar la propiedad Text.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #14  
Antiguo 06-05-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Ya lo hago. Uso Clear al empezar

Lo dicho, antes de usar el método Add, uso Clear. Gracias por vuestras aportaciones.
Responder Con Cita
  #15  
Antiguo 17-05-2013
Avatar de bulc
bulc bulc is offline
Miembro
 
Registrado: jun 2010
Posts: 415
Poder: 14
bulc Va por buen camino
Coloco un TDBNavigator y ClientDataSet, o no

Cita:
Empezado por Young Ver Mensaje
Para trabajar con IBExpert en la edición de una tabla te recomiendo que uses IBDataset, para eso supongamos que tienes una tabla cliente, en la propiedad SQL del Dataset ingresas lo siguiente:

Código SQL [-]
SELECT * FROM CLIENTES

Deberás tener el componente enlazado a IBDatabase e IBTransaction correspondiente. Posteriormente haces click derecho sobre el componente dataset y seleccionas la opción de menú Dataset Editor, veras que esta seleccionado el nombre de la tabla y en resumidas cuentas pulsas los botones "Get Table Fields", "Dataset Defaults", "Select Primary Keys" y finalmente "Generate SQL". Todo esto para definir los campos que serán actualizados (todos en este caso), la llave primaria y crear las sentencias sql necesarias para insertar, modificar y eliminar.

Luego y trabajas el dataset como cualquier otro:
Código Delphi [-]
IBDataset1.Append;
..
IBDataset1.Edit;
..
IBDataset1.Delete:
..
IBDataset2.Post;

Espero que te sirva de orientación.

Saludos.
Me pregunto si el TDBNavigator ya habilita los cambios o debo usar las sentencias SQL del Dataset.
Ahora estoy atascado porque mi Delphi no enseña los campos, una vez asignado el DatSource. Pero no me da errores, así que sigo.
Saludos, Bulc.

Última edición por bulc fecha: 17-05-2013 a las 14:23:58. Razón: Añadir firma
Responder Con Cita
  #16  
Antiguo 17-05-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Te aconsejo encarecidamente el libro "La cara oculta de delphi 4", está en nuestro FTP, después de leerlo "serás otro"
Responder Con Cita
Respuesta



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
Poner datos de consulta en un DbGrid pero en memoria para poder editar MartinS Firebird e Interbase 4 25-04-2012 16:51:03
Editar datos de un wwDbGrid...asociado a un Qry!!! Diana Carolina OOP 5 19-07-2011 21:41:08
editar campo autoincremento al editar registro anterior chartres Conexión con bases de datos 1 21-05-2011 01:37:25
como puedo ordenar y editar los datos de un listbox manu12345 OOP 9 19-05-2008 20:54:51
Paso de sesiones o como editar datos en ventanas emergentes roman PHP 3 10-06-2005 18:20:12


La franja horaria es GMT +2. Ahora son las 17:25:24.


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