Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
editar campos por codigo

Hola amigos,

Cuando empiezo un programa tengo la costumbre de, en las propiedades de zconnection le pongo la ruta de la base de datos, y con los zquery hago lo mismo, le asigno en propiedades todo lo que puedo, para ir viendo en tiempo de diseño como va quedando. No se si esto es una buena práctica, pero de momento me ha funcionado.

En zquery tambien edito los campos y ahi los asigno y tambien le meto calculados.

El problema surge cuando ya por codigo, asigno la base de datos, el protocolo y todo lo demas, pero cuando hago eso y ejecuto, los campos calculados y los demas me arroja el error que no existen.

Mi pregunta es, como puedo asignar todo eso, editar campos del zquery pero por codigo porque no lo he visto por ninguna parte.


Y ya que pregunto esto, tambien el por que despues de haber creado un campo calculado ya no puedo modificarlo desde ahi.
Por si no me explique bien, el editar campos es cuando en el zquery le das doble click.

gracias y perdon por las molestias
Responder Con Cita
  #2  
Antiguo 19-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por anubis Ver Mensaje
Y ya que pregunto esto, tambien el por que despues de haber creado un campo calculado ya no puedo modificarlo desde ahi.
Por si no me explique bien, el editar campos es cuando en el zquery le das doble click.
Hola, cuando en modo diseño haces doble click en el componente (y estando conectado) se crean los campos.
Entonces en ejecución los campos están creados, no tienes que volver a crearlos porque ya lo están.

Creo que no he entendido el problema que tienes
Responder Con Cita
  #3  
Antiguo 20-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias por contestar,

A ver si me se explicar mejor.

Por alguna casualidad que desconozco, cuando creo esos campos tal y como dices pero en las propiedades del zconnection en el apartado de database( inspector de objetos) donde meto a "mano" la ruta de la base de datos no tengo problema ninguno, pero si en vez de hacerlo asi lo meto por codigo:

Código Delphi [-]
zconnection1.database:='c:\basededatos.db';
zconnection1.connected:=true;
zquery1.active:=true;
asi si me da error porque me dice que hay un error de sql o la basededatos esta desaparecida.

ya probe a poner el paramcheck a false y otras tantas cosas.

Solo me funciona dejando en el zconnection en su propiedad database (en el cuadro inspector de objetos) la ruta completa.

Si en el zquery dejo el añadir los campos en blanco, vamos que no pongo ninguno si puedo poner el codigo anterior porque si me funciona.

No entiendo el por qué pasa esto.
Responder Con Cita
  #4  
Antiguo 20-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por anubis Ver Mensaje
Solo me funciona dejando en el zconnection en su propiedad database (en el cuadro inspector de objetos) la ruta completa.
Es así, aunque luego por código puedes cerrar la BD y abrir otra igual a esa que tienes asignada en modo diseño.
En ese caso funcionará bien, ¿no?.
Responder Con Cita
  #5  
Antiguo 20-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Gracias de nuevo,

Si entendí bien lo que me dices, le meto un zconnectio2, y la otra no la uso?
Así no sería la forma coherente de programar, según veo.
Lo digo más que nada porque, a parte de hacer programas que funcionen y seguir aprendiendo, hacer el código de forma elegante y sin "chapuzas"..

O como lo haceis vosotros en estos casos.

saludos y gracias
Responder Con Cita
  #6  
Antiguo 20-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que me he perdido

Exactamente, ¿qué es lo que quieres hacer?, ¿conectar a dos BD al mismo tiempo?
Responder Con Cita
  #7  
Antiguo 20-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
No no, queria asignar la base de datos al zconnection por codigo en vez de usar el inspector de objetos, pero al hacer esto ultimo, los campos calculados asignados en añadir campos del zquery me dice que no existen.

Lo que te comentaba en el anterior post pense que iba relacionado con crear otra base de datos, pero no entendi cuando me comentabas que asignara la base de datos y luego por codigo la cerrara y abriera otra igual.

A parte, de si era esto correcto a la hora de programar.
Responder Con Cita
  #8  
Antiguo 20-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver... pongamos un ejemplo.
Estamos creando un programa de contabilidad y hemos creado una base de datos que se llama plantilla-conta.fdb
Tenemos nuestro componente de base de datos, otro de transacciones, varios datasets y datasources. Lo normal.
El componente de BD tiene asociado plantilla-conta.fdb y creamos el programa con esa BD, creamos campos calculados, campos persistentes, etc. lo que haga falta.
Nuestro programa de contabilidad va a poder manejar distintas empresas y ejercicios, con nombres como (ejemplos):
emp-001-ejer-2012.fdb
emp-001-ejer-2011.fdb
emp-002-ejer-2011.fdb
etc.

Estas BDs son una copia de plantilla-conta.fdb y que se crean cada vez que el usuario crea un nuevo ejercicio/empresa.

Desde el programa debemos poder conectar a una empresa u otra, y también a un ejercicio u otro.
Para ello se desconecta de la BD a la que esté conectado y se conecta a otra.

Las bases de datos son iguales, evidentemente.

¿Es a esto a lo que te refieres?
Responder Con Cita
  #9  
Antiguo 20-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Con todo este asunto he debido tener algun problema, acabo de crear algo basico para probar lo que preguntaba en el primer post.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  zconnection1.Database:='d:\program cheques\elcheques.ib6';
  zconnection1.Protocol:='sqlite-3';
  zconnection1.Connected:=true;
  zquery1.Connection:=zconnection1;
  zquery1.SQL.Text:='select * from tcuentas';
  zquery1.Active:=true;
  datasource1.DataSet:=zquery1;
  dbgrid1.DataSource:=datasource1;
end;

y funciona, tanto como si añado campos en tiempo de ejecucion, como si los pongo mal, no me da error en ningun sitio, ni me dice que no existen asi que voy a revistar el otro programa en el que tengo varios querys.

Gracias y perdon por las molestias
Responder Con Cita
  #10  
Antiguo 20-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ya nos dirás, a ver si descubres el problema
Responder Con Cita
  #11  
Antiguo 21-08-2012
Avatar de anubis
anubis anubis is offline
Miembro
 
Registrado: mar 2007
Posts: 863
Poder: 18
anubis Va por buen camino
Ya está solucionado.

Al asignar la base de datos por código, tuve que quitar todas las referencias en el inspector de objetos a dicha base de datos y asignarlas todas por código asi no me da error.

Entiendo que al asignar por código la base de datos y tener las referencias en el inspector de objetos, éstas buscaban primero la base de datos y todavía no estaba asignada.

Muchas gracias Casimiro.


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
editar campo autoincremento al editar registro anterior chartres Conexión con bases de datos 1 21-05-2011 01:37:25
Editar sólo algunos campos de un dbgrip. cesar_gta86 Varios 1 30-11-2007 18:27:51
Como editar còdigo en NetBeans? Arcioneo JAVA 1 20-03-2007 17:15:49
editar campos de un browse en debedits mcantob C++ Builder 1 15-09-2006 00:12:15
Problema al editar un hilo con código fuente jmariano Varios 2 28-08-2005 23:12:06


La franja horaria es GMT +2. Ahora son las 08:37:13.


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