Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por jrla Ver Mensaje
hola casimiro no me molesto :-S simplemente me siento frustrado al realizar algo que quiero y me complique tanto
la otra pregunta es mi gestor de base de datos es interbase y me conecto con IBTransaction1
Por eso te he enlazado el libro La cara oculta de Delphi, todas esas dudas desaparecerán si lo lees.

IBTransaction no es para conectar con una base de datos.

Última edición por Casimiro Noteví fecha: 12-09-2014 a las 15:11:12.
Responder Con Cita
  #2  
Antiguo 12-09-2014
jrla jrla is offline
Miembro
NULL
 
Registrado: sep 2014
Posts: 24
Poder: 0
jrla Va por buen camino
Talking el perdido :D

Cita:
Empezado por Casimiro Notevi Ver Mensaje
IBTransaction no es para conectar con una base de datos.
yo utilizo interbase el que trae embarcadero xe6 creo que se conecta con ibconasole y en mi form tengo par enlazar a a mi base de datos un tibdata base
Responder Con Cita
  #3  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 jrla.

Para el ejemplo crea dos tablas iguales, menos en el nombre claro
Código SQL [-]
SET TERM ^;

CREATE TABLE TEST (
    ID      INTEGER,
    CADENA  VARCHAR(50)
)^

CREATE TABLE TEST2 (
    ID      INTEGER,
    CADENA  VARCHAR(50)
)^

SET TERM ;^
Y cargale algunos datos a la primer tabla (orígen).

En un form pone,
Código:
1 (un ) TIBDatabase    (IBDatabase1)
1 (dos) TIBTransaction (IBTransaction1) 
2 (dos) TIBDataSet     (ibdsSource y ibdsTarget)
2 (dos) TDataSource    (dsSource, dsTarget)
2 (dos) TDBGrid.       (dbgSource, dbgTarget)
1 (un ) TButton        (btnPassData)
Ejemplo:
Código PHP:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  
/* tabla origen */
  
ibdsSource->Close();
  
ibdsSource->Database IBDatabase1;
  
ibdsSource->SelectSQL->Text "SELECT * FROM TEST";
  
ibdsSource->Open();
  
// DataSource origen
  
dsSource->DataSet ibdsSource;
  
// DBGrid origen
  
dbgSource->DataSource dsSource;
  
dbgSource->Options TDBGridOptions(dbgSource->Options)<< dgMultiSelect;
  
dbgSource->Options TDBGridOptions(dbgSource->Options)<< dgRowSelect;
  
dbgSource->PopupMenu PopupMenu1;

  
/* tabla destino */
  
ibdsTarget->Close();
  
ibdsTarget->Database IBDatabase1;
  
ibdsTarget->SelectSQL->Text "SELECT * FROM TEST2";
  
ibdsTarget->Open();
  
// DataSource destino
  
dsTarget->DataSet ibdsTarget;
  
// DBGrid destino
  
dbgTarget->DataSource dsTarget;
}

void __fastcall TForm1::btnPassDataClick(TObject *Sender)
{
  if (
dbgSource->SelectedRows->Count 0) {
    for(
int i 0dbgSource->SelectedRows->Counti++) {
      
ibdsSource->GotoBookmark((void*)dbgSource->SelectedRows->Items[i].c_str());
      
ibdsTarget->Insert();
      for(
int j 0ibdsSource->Fields->Countj++)
        
ibdsTarget->Fields->Fields[j]->Value ibdsSource->Fields->Fields[j]->Value;
      
ibdsTarget->Post();
    }
  }

El código pasa los registros que hayas seleccionado en dbgSource (mediante Ctrl+Click) a dbgTarget (en realidad de ibdsSource a ibdsTarget), cuando se presiona el botón btnPassData.

Está realizado y probado en C++ Builder 6 y Firebird 2.5.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 12-09-2014
jrla jrla is offline
Miembro
NULL
 
Registrado: sep 2014
Posts: 24
Poder: 0
jrla Va por buen camino
Talking aqui esta la propieda PopupMenu

Cita:
// DBGrid origen
dbgSource->DataSource = dsSource;
dbgSource->Options = TDBGridOptions(dbgSource->Options)<< dgMultiSelect;
dbgSource->Options = TDBGridOptions(dbgSource->Options)<< dgRowSelect;
dbgSource->PopupMenu = PopupMenu1;
la ultima línea
Responder Con Cita
  #5  
Antiguo 12-09-2014
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 14
aguml Va por buen camino
A ver, hay algo que no tengo claro, el filtrado ¿quieres guardarlo? Si es asi lo mejor es que crees una nueva tabla (por ejemplo la puedes llamar "filter") y ahí guardas. Si no quieres guardar ese filtrado ¿por que no usas un TStringGrid para mostrarlos? Este no necesita de una tabla y viene a ser lo mismo.
Responder Con Cita
  #6  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Cita:
Empezado por jrla Ver Mensaje
la ultima línea
Te pido mil disculpas, juro que no lo ví , solo borra la línea y el error desaparecerá

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 12-09-2014
jrla jrla is offline
Miembro
NULL
 
Registrado: sep 2014
Posts: 24
Poder: 0
jrla Va por buen camino
Talking listo

Código PHP:
http://docwiki.embarcadero.com/Libraries/XE6/en/System.Types.TByteDynArray 
ya borre la línea....... investigue y me sale estoy referente a tbytedynarray que opinas
Responder Con Cita
  #8  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 jrla.

No me dice mucho y tampoco pude encontrar la declaración de TBookmark para XE6 o algún ejemplo.

¿ Podrías buscar por las palabras TBookmark y TBookmarkList en la ayuda (help) del propio XE6 a ver que dice ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 12-09-2014
jrla jrla is offline
Miembro
NULL
 
Registrado: sep 2014
Posts: 24
Poder: 0
jrla Va por buen camino
Red face vuelvo a explicar mi duda

hola a todos att el perdido.......... lo que tengo es lo siguiente tengo un form que se llama organizar curso donde tengo un combobox con todos los departamentos y un button enlazado a un query que me hace una consulta a la tabla trabajadores y me filtra los mismo de acuerdo a la selección del combobox y me lo mostrara en un stringrid ecfisa me ayudo con esa parte y buscando en los hilos vi que era mejor trabajar con un dbgrid entonces agregue un datasourse1 y lo enlace a mi query y mi dbgrid1 lo enlace a datasourse1 y este me muestra mi consulta

aquí viene el problema mi tutor dijo pero si yo quiero seleccionar algunos trabajadores de departamento y no a todos y crear otra lista .... y entonces agregue un 2 dbgri2 y un clienta dataset1 .... a dbgrid1 le active las opciones multiselec y rowslect lo que quiero hacer es que cuando marque los trabajadores del dbgrid 1 y precione un button los pase al dbgrid 2 y esa es la lista de trabajadores que voy a almacenar en mi base de datos esa es mi historia
Responder Con Cita
  #10  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 jrla.

Claro, pero al usar un TDBGrid como receptor de los datos, sí o sí tenes que emplear una tabla ya que ese componente funciona en relación con ellas (la representa visualmente) y si usas la misma tabla vas a duplicar información.

Si usas una sola tabla, se me ocurre como mas lógico borrar los registros no seleccionados ...

¿ Es eso lo que buscas hacer? ¿ Dejar en la tabla sólo los registros seleccionados ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 12-09-2014
jrla jrla is offline
Miembro
NULL
 
Registrado: sep 2014
Posts: 24
Poder: 0
jrla Va por buen camino
ecfisas

aplique tu línea de código y me sale esto c_str isno a member of tbytedynarray y undefined symbol popupmenu1
con la explicación de tu código entendí que mi 2 dbgrid debe estar enlazado a la tabla que quiero almacenar verdad ?... o me equivoco
Responder Con Cita
  #12  
Antiguo 12-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 jrla.
Cita:
Empezado por jrla Ver Mensaje
aplique tu línea de código y me sale esto c_str isno a member of tbytedynarray
Es por eso que aclare: C++ Builder 6. En esta versión TBookmarkList, está declarado así:
Código PHP:
typedef void *TBookmark
Eso cambió a partir de C++ Builder 2009 y aparentemente XE6 declara la propiedad TBookmarkList (Items) de tipo TByteDynArray, de allí que indique que el método c_str() no es miembro de ...
Pero realmente desconozco la definición y uso en XE6, tendría que buscar y leer al respecto.


Cita:
Empezado por JRLA Ver Mensaje
y undefined symbol popupmenu1
¿ Y en que parte del código de mi mensaje metí un TPopupMenu llamado popupmenu1 ?


Cita:
Empezado por jrla Ver Mensaje
con la explicación de tu código entendí que mi 2 dbgrid debe estar enlazado a la tabla que quiero almacenar verdad ?... o me equivoco
No te equivocas en absoluto, es así. De ese modo se guardarían en la segunda tabla los registros seleccionados.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
crear referencia en tabla firebird ebeltete Firebird e Interbase 5 30-05-2011 10:39:47
Tabla de Referencia Cruzada santi33a MS SQL Server 3 03-02-2006 21:49:00
como ejecutar un query haciendo referencia a una tabla que esta en red????? reggaealex SQL 2 20-01-2005 19:36:48
Referencia a los campos de una tabla en Interbase mglucero Firebird e Interbase 2 05-11-2004 09:45:57
UPDATE con referencia a otra tabla... JorgeBec SQL 6 05-08-2004 20:48:36


La franja horaria es GMT +2. Ahora son las 22:16:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi