Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
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 03-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Porque no viene el Dataset en Delphi for PHP 1.0 ????

Ando investigando como actualizar, borrar registros de una BD de firebird con Delphi-PHP de cualquier componente, porque en la paleta DataAccess y la de Interbase solo veo el StoredProc, no hay algún componente como el DataSet ????

Agradezco cualquier ayuda....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 03-09-2008 a las 23:17:53. Razón: Corr
Responder Con Cita
  #2  
Antiguo 04-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Ya intente con el Stored Procedure mandandole parametros para actualizar 1 campo cuando menos de una tabla:

Código PHP:
    $params=array();
    
$params['NUMCLI']=$this->$this->edNumCli->Text;
    
$params['DIASCRED']=$this->$this->edDiasCred->Text;
    
$this->IBSPCliente->Params=$params;

    
$this->IBSPCliente->Prepare();

    
$this->IBSPCliente->close();
    
$this->IBSPCliente->open(); 
Dentro del SP en firebird solo tengo un Update a x tabla , pero me marca error al ejecutar ese código

Código:
Catchable fatal error:  Object of class FCliente could not be converted to string in C:\temporal\PHP\Cliente.php on line 57
Alguien ha actualizado tablas de interbase ó firebird con algun componente en Delphi for PHP Versión 1 ó 2 ????

__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #3  
Antiguo 04-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Sospecho que tuvo fallas en la instalación de los componentes o modificó la configuración de la paleta, porque no es normal que sólo esté el TStoredProc.

Esta es la mayoría de los componentes de db en la paleta de mi D4PHP:



Y sí, puede ver ejemplos de acceso a bds en los ejemplos, como los que están en las carpetas:
  • ...\vcl\samples\Data Aware\
    -
  • ...\vcl\samples\IBX\
    -
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #4  
Antiguo 04-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
No me sirven esos ejemplos, no te dicen por código como guardar datos, y lo del Stored Procec me referia que era el unico componente que me podia ayudar para grabar, pero arriba menciono como intente hacerlo por ese componente y no me funciona algo me falta para que funcione y si no viene el dataset, alguien hizo ó encontro cuando menos un componente que se enlace al Query como el UpdateSQL de los ibx que se enlazaba al Query para hacer modificaciones....

Gracias por su sugerencia....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #5  
Antiguo 04-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Los ejemplos llamados:
  • Data Aware\Transactions
  • BlogProject
  • SimpleManagement
Tienen inserción de registros por código.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #6  
Antiguo 04-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Gracias por tu sugerencia, pero no me sirve viejo, mira, lo que obliga el Delphi for PHP es que uses el Table y eso es bastante pesado, me gusta mucho usar los Query's y los DAtaset's, estos ultimos los uso más porque puedes hacer busquedas y modificarlos al mismo tiempo, con el table tienes que traerte toda la información y para buscar el registro es bastante pesado usarlo con un Locate, espero me explique .....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #7  
Antiguo 04-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Yo le entiendo y disculpará mi insistencia, pero creo que sí le sirve. Pues, nada obliga el uso de TTable, siendo que puede hacer algo así:

Código PHP:
  $this->Query1->Open();
  
$this->Query1->Append();
  
//$this->Query1->CampoX = "0";
  
$this->Query1->Post(); 
Sólo estando pendiente de la propiedad TableName.
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #8  
Antiguo 05-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Cita:
Empezado por TOPX Ver Mensaje
Yo le entiendo y disculpará mi insistencia, pero creo que sí le sirve. Pues, nada obliga el uso de TTable, siendo que puede hacer algo así:

Código PHP:
  $this->Query1->Open();
  
$this->Query1->Append();
  
//$this->Query1->CampoX = "0";
  
$this->Query1->Post(); 
Sólo estando pendiente de la propiedad TableName.
En primer lugar creo que para un Query no puede usarse para editarse, hice la prueba a como tu lo explicas y no jala de esa forma:
Código PHP:
  //Actualizamos Campo
  
$this->ibQryCliente->Edit;
  
$this->ibQryCliente->DIASCRED $this->edDiasCred->Text;
  
$this->ibQryCliente->Post
Marca el Siguiente Error:

Código:
Application raised an exception class EPropertyNotFound with message 'Trying to access non-existant 
property IBQuery->Edit in interbase.inc.php, line 701.'
El error es porque el Query no tiene esa propiedad para editar

Y Ni de esta manera:

Código PHP:
  //Actualizamos Campo quitando ->EDIT
  
$this->ibQryCliente->Fields['DIASCRED'] = $this->edDiasCred->Text;
  
$this->ibQryCliente->Post
Marca el siguiente errror:

Código:
 
Application raised an exception class EPropertyNotFound with message 'Trying to access non-existant property IBQuery->Post in interbase.inc.php, line 701.'
Por lo tanto creo que un Query no sirve para actualizar registros ....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 05-09-2008 a las 00:48:06. Razón: Corrección
Responder Con Cita
  #9  
Antiguo 05-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Mira, tengo un formulario donde muestro los datos de X cliente, por ejemplo:

Código -> Campo donde se capturará el código del cliente

Nombre,
Dirección,
RFC,
Población,

Dias de Credito,
Limite de Credito

Los 2 ultimos campos son editables es decir solo se pueden modificar, tengo un boton que se llama Consultar, dentro de ese boton tengo lo siguiente para buscar el código del cliente:

Código PHP:
 
  
//Armamos Select
  
$Sql='SELECT NUMCLI,NOMCLI,DIRCLI,RFCCLI,CPCLI,POBCLI,
          DIASCRED,LIMITECR FROM CLIENTES'
;
  
$this->ibQryCliente->Sql=$Sql;
  
$this->ibQryCliente->Filter=" NUMCLI >= ".$this->edNumCli->Text.
            and NUMCLI <="
.$this->edNumCli->Text."";
 
  
//Preparamos Query
  
$this->ibQryCliente->Prepare();
  
  
//Reabrimos Query
  
$this->ibQryCliente->close();
  
$this->ibQryCliente->open();
 
  
//Mostramos Datos del Cliente
  
$this->edNomCli->Text $this->ibQryCliente->Fields['NOMCLI'];
  
$this->edDirCli->Text $this->ibQryCliente->Fields['DIRCLI'];
  
$this->edPobCli->Text $this->ibQryCliente->Fields['POBCLI'];
  
$this->edRFCCli->Text $this->ibQryCliente->Fields['RFCCLI'];
  
$this->edCPCli->Text  $this->ibQryCliente->Fields['CPCLI'];
  
$this->edDiasCred->Text      $this->ibQryCliente->Fields['DIASCRED'];
  
$this->edLimiteCredito->Text $this->ibQryCliente->Fields['LIMITECR']; 
Hasta aqui vamos bien, el Query apunta al registro del cliente, ahora modificar los ultimos 2 campos, como puedo decirle al Query que me guarde las modificaciones ????

__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 05-09-2008 a las 00:55:53. Razón: Corrección
Responder Con Cita
  #10  
Antiguo 05-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Question

Ya probe el siguiente código basandome de un ejemplo del Sr. Andreano y no me jala, no marca error, simplemente no hace nada:

Código PHP:
  $this->ibdbCXC->BeginTrans();

  
$this->ibQryCliente->SQL 
"UPDATE CLIENTES SET DIASCRED =".$this->edDiasCred->Text."   
WHERE  NUMCLI = "
.$this->edNumCli->Text."";

  
$this->ibQryCliente->open();
  
$this->ibQryCliente->close();

  
$this->ibdbCXC->CompleteTrans(); 
Aclaro, el ejemplo del Sr. Andreano usa un Insert into.. para insertar un registro, y no usa el BeginTrans, pero también ya lo probe sin usarlo.
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 05-09-2008 a las 18:55:58. Razón: Corrección
Responder Con Cita
  #11  
Antiguo 08-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Ya he investigado en la pagina de codegear, he visto ejemplos de esa pagina, he visto ejemplos que vienen al instalar el Delphi for php y no consigo Modificar un registro de una tabla de firebird 1.5, ya revise la ayuda que trae Delphi PHP y no vienen ejemplos, alguien sabe ????

__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #12  
Antiguo 08-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por AGAG4 Ver Mensaje
Ya probe el siguiente código basandome de un ejemplo del Sr. Andreano y no me jala, no marca error, simplemente no hace nada:

Código PHP:
  $this->ibdbCXC->BeginTrans();

  
$this->ibQryCliente->SQL 
"UPDATE CLIENTES SET DIASCRED =".$this->edDiasCred->Text."   
WHERE  NUMCLI = "
.$this->edNumCli->Text."";

  
$this->ibQryCliente->open();
  
$this->ibQryCliente->close();

  
$this->ibdbCXC->CompleteTrans(); 
Aclaro, el ejemplo del Sr. Andreano usa un Insert into.. para insertar un registro, y no usa el BeginTrans, pero también ya lo probe sin usarlo.
Estas realizando un update, no un insert. Sino existe el registro no hará nada!
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #13  
Antiguo 08-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
He compilado por partes para saber que valor tiene edNumCli->text y tiene el código a buscar para modificar y el edDiasCred->Text también toma el valor a modificar, por lo tanto, no se que pasa ó que me falta por hacer

Y eso de que si no esta el registro no hace nada mi chavo, eso ya lo sé, es por eso que ya he compilado por partes para mostrar los valores que toma....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 08-09-2008 a las 17:17:19. Razón: Corrección
Responder Con Cita
  #14  
Antiguo 08-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por AGAG4 Ver Mensaje
He compilado por partes para saber que valor tiene edNumCli->text y tiene el código a buscar para modificar y el edDiasCred->Text también toma el valor a modificar, por lo tanto, no se que pasa ó que me falta por hacer

Y eso de que si no esta el registro no hace nada mi chavo, eso ya lo sé, es por eso que ya he compilado por partes para mostrar los valores que toma....
Que bueno que lo sepas, te recomiendo que cuando publiques código publiques el que corresponda con lo que quieres hacer de modo que el que lee pueda ayudarte, no somos adivinos y el código que publicaste no hace lo que quieres que haga, por eso lo comente con el fin de ayudarte por si ahi estaba tu error.

Por otro lado no se para que te complicas tanto, para ver si el SQL esta funcionando coloca una sentencia completa en texto, sin agregado de variables, y prueba con el método execute, una sentencia que no devuelve datos no se abre ni se cierra, eso es para conjuntos de datos.

Por si no queda claro lo que digo:

Código PHP:
 $this->ibdbCXC->BeginTrans();

  
$this->ibQryCliente->SQL 
"INSERT INTO CLIENTES 
   (DIASCRED)
  VALUES
   ('01/01/2008')
 FROM
    CLIENTES"
;

  
$this->ibQryCliente->execute();

  
$this->ibdbCXC->CompleteTrans(); 
Por cierto no tengo Delphi for php a mano, por tanto no lo he probado.

Saludos
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal

Última edición por donald shimoda fecha: 08-09-2008 a las 18:08:26.
Responder Con Cita
  #15  
Antiguo 08-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Cita:
Empezado por donald shimoda Ver Mensaje
Que bueno que lo sepas, te recomiendo que cuando publiques código publiques el que corresponda con lo que quieres hacer de modo que el que lee pueda ayudarte, no somos adivinos y el código que publicaste no hace lo que quieres que haga, por eso lo comente con el fin de ayudarte por si ahi estaba tu error.

Por otro lado no se para que te complicas tanto, para ver si el SQL esta funcionando coloca una sentencia completa en texto, sin agregado de variables, y prueba con el método execute, una sentencia que no devuelve datos no se abre ni se cierra, eso es para conjuntos de datos.

Por si no queda claro lo que digo:

Código PHP:
 $this->ibdbCXC->BeginTrans();

  
$this->ibQryCliente->SQL 
"INSERT INTO CLIENTES 
   (DIASCRED)
  VALUES
   ('01/01/2008')
 FROM
    CLIENTES"
;

  
$this->ibQryCliente->execute();

  
$this->ibdbCXC->CompleteTrans(); 
Por cierto no tengo Delphi for php a mano, por tanto no lo he probado.

Saludos
Si fuistes tan observador creo que te distes cuenta que soy novato en delphi for php, asimilo que es dephi pero ese es mi problema que tengo que pensar que estoy interactuando con php aunque la interfaz sea delphi, y creo que fui claro con mis comentarios de arriba si el código que puse esta mal pues por eso lo publique para ver si alguien me dice en que estoy mal, y veo que tu percepción "No Fue Buena" Mi Chavo, ya encontre la solución de mi problema, estaba bien lo que hacia solo que antes de aplicar la sentencia SQL del Update tengo que cerrar el Query:
Ejemplo:
Código PHP:
   //CERRAMOS
   
$this->ibQryCliente->close();

   
$this->ibQryCliente->SQL 
   
"UPDATE CLIENTES SET DIASCRED =".$this->edDiasCred->Text."   
   WHERE  NUMCLI = "
.$this->edNumCli->Text."";

   
//ABRIMOS
   
$this->ibQryCliente->open(); 
Con tan solo cerrar, tomar sentencia y abrir query ya modifica el registro,
ACLARO:

Sobre el comentario de:
"ESO DE QUE NO SOMOS ADIVINOS"

Alli si te pasastes viejo, creo que he sido my claro en lo que he comentado, mi problema era de que no podía actualizar X registro, si hubieras sido tan observador hubieras encontrado la solución, asi es que no seas tan "drastico" en ayudar a esta comunidad, no todos pensamos igual que tu, a mi solo me faltaba un pequeño empujon, pero gracias a que le estuve insistiendo, haciendo pruebas, moviendo código, etc. etc. pude encontrar la solución....

Aclarando el otro comentario:
"y el código que publicaste no hace lo que quieres que haga,"

Si estas tan seguro de que no hace lo que quiero yo que haga porque no fuistes tan obervador de decirme pon el Close primero y después el open, asimilo que tu sabias la solución del problema, pues veo que no.

P.D. No quiero hacer grilla, ni mucho menos ser tan grosero, pero no me gusta que haya gente que nos vea como pequeños enanos que no sabemos nada, todos empezamos desde abajo.

A pesar de todo....

Gracias por tu ayuda....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 08-09-2008 a las 18:34:46. Razón: Cor
Responder Con Cita
  #16  
Antiguo 08-09-2008
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por AGAG4 Ver Mensaje
P.D. No quiero hacer grilla, ni mucho menos ser tan grosero, pero no me gusta que haya gente que nos vea como pequeños enanos que no sabemos nada, todos empezamos desde abajo.

A pesar de todo....

Gracias por tu ayuda....
Debe ser como tu dices, desde ya sabes que contarás con mi ayuda cuando la necesites. Veo que lo de la frase de tu firma lo dices con conocimiento de causa.

Suerte.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #17  
Antiguo 08-09-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Asi es mi chavo, en este mundo la mayoria nos llevamos como perros y gatos, espero en dios que todo esto cambie para el bien de la humanidad, y disculpa si me exalte ....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
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
Copiar el contenido de un DataSet a otro DataSet Javi2 Varios 82 22-11-2022 10:26:16
Porqué Delphi en lugar de Visual Basic dec Humor 12 01-05-2008 03:22:32
Porque El Club Delphi Esta Hecho En Php ASAPLTDA Debates 13 05-07-2007 10:01:27
Pintar una elipte dada dos coordenadas, sin utilizar la funcion que viene en delphi Richard Gráficos 4 09-05-2004 19:35:51
El Rave que viene con Delphi es una Demo? apicito Impresión 0 04-06-2003 12:33:36


La franja horaria es GMT +2. Ahora son las 10:57:15.


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