Ir al contenido



Foto

Como agregar o modificar datos con dbexpress


  • Por favor identifícate para responder
12 respuestas en este tema

#1 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 612 mensajes
  • LocationLos Mochis

Escrito 15 enero 2009 - 06:52

Hola aquí ando de nuevo preguntando sobre oracle, ahora resulta que después de que al fin me pude conectar a oracle con dbexpress se me presento otro problema, puedo consultar las tablas y me traigo los registros a dbedits y dbgrids usando datasnap.

Luego modifico o agrego registros y aplico los cambios con applyupdates en el clientdataset donde al parecer todo fue bien porque no me sale ningun error. Me salgo del programa y entro de nuevo pero ya no estan los cambios que hice.

El mismo programa lo uso configurando el driver del sqlconnection a sql server o mysql y en estos dos si se modifican y agregan los registros.

Alguien le a pasado esto y sabe como resolverlo para que funcione en oracle tambien?
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 6.999 mensajes
  • LocationRepública Dominicana

Escrito 16 enero 2009 - 05:11

Hola Axesys, es posible que en este caso se requiera usar Commit y Rollback, ¿llegaste a usarlos?.

Saludos.
  • 0

#3 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.071 mensajes
  • LocationRepública Dominicana

Escrito 16 enero 2009 - 08:34

Saludos.

Revisa como tienes configurado el DataSetProvider este es el encargado de gestionar los cambios hacia el servidor y el cliente.

No indicas con que componente realizas el Select.
  • 0

#4 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 16 enero 2009 - 08:35

Hola,

Si pruebas un Refresh despues del ApplyUpdates, ¿te genera algún error?... creo que ese problema lo he visto antes
  • 0

#5 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 612 mensajes
  • LocationLos Mochis

Escrito 16 enero 2009 - 11:58

Hola Axesys, es posible que en este caso se requiera usar Commit y Rollback, ¿llegaste a usarlos?.

Saludos.


Pues segun me comentaron que eso ya lo hace automático dbexpress, pero también hice la prueba llamando el starttransaction y commit del sqlconnection pero tampoco se graban.

Saludos.

Revisa como tienes configurado el DataSetProvider este es el encargado de gestionar los cambios hacia el servidor y el cliente.

No indicas con que componente realizas el Select.


Estoy usando un sqltable

Hola,

Si pruebas un Refresh despues del ApplyUpdates, ¿te genera algún error?... creo que ese problema lo he visto antes


Eso no lo e probado lo voy a checar y te comento
  • 0

#6 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 612 mensajes
  • LocationLos Mochis

Escrito 16 enero 2009 - 01:51

Hice un programita sin datasnap nomas para probar con esta tabla



sql
  1. CREATE TABLE TEMPLATES (
  2. ID NUMBER(10 , 0) NOT NULL,
  3. NAME NVARCHAR2(128)
  4. );
  5.  
  6. ALTER TABLE TEMPLATES ADD CONSTRAINT TEMPLATES_PK PRIMARY KEY (ID);



Los componentes estan configurados así: SQLConnection->SQLTable->DataSetProvider->ClientDataSet-DataSource->DBGrid

El error que me da ahora al dar applyupdates es:

ORA-01722: invalid number

Alguien sabe porque?
  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 6.999 mensajes
  • LocationRepública Dominicana

Escrito 16 enero 2009 - 03:16

¿No será que el formato de ID Number (10) no es el correcto?  *-)
  • 0

#8 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 612 mensajes
  • LocationLos Mochis

Escrito 16 enero 2009 - 04:14

Este error se arregla con lo siguiente



delphi
  1.   ORACLECONNECTION.Open;
  2.   ORACLECONNECTION.ExecuteDirect('ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''.,''');



Ya le volví a meter el datasnap y sigue igual que no graba ni marca error :s.

Estaba apunto de ponerle para hacer el refresh pero mi beba de 10 meses se estiro de la carreola para alcanzar un vaso de agua que estaba junto a la laptop y se lo hecho al teclado.

Ahora voy a iniciar de nuevo el proyecto en otra maquina haber que pasa
  • 0

#9 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 16 enero 2009 - 04:51

Ya no es Oracle ni DBExpress sino el agua  :p
Comentanos a ver que sucede
  • 0

#10 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 612 mensajes
  • LocationLos Mochis

Escrito 16 enero 2009 - 04:57

Pues este nuevo programa que hice si esta funcionando con datasnap despues de que agregue en el evento afterconnect del sql connection la linea ORACLECONNECTION.ExecuteDirect('ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''.,'''); aunque esta vez no hice mi servidor de aplicaciones como servicio de windows ahora lo voy a convertir haber si sigue grabando.
  • 0

#11 axesys

axesys

    Advanced Member

  • Moderadores
  • PipPipPip
  • 612 mensajes
  • LocationLos Mochis

Escrito 16 enero 2009 - 05:33

Ya convertí en servicio de windows el servidor de aplicaciones y si esta grabando todo bien, el problema fue que en mi laptop tenía configurado el sqlconnection con el usuario system, aca en la otra maquina use el usuario con el que se crearon las tablas y ya esta jalando.
  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.394 mensajes
  • LocationMéxico

Escrito 16 enero 2009 - 05:35

Ya convertí en servicio de windows el servidor de aplicaciones y si esta grabando todo bien, el problema fue que en mi laptop tenía configurado el sqlconnection con el usuario system, aca en la otra maquina use el usuario con el que se crearon las tablas y ya esta jalando.


Ah pues que bien, felicidades, vamos a poner el hilo como resuelto (y)

Salud OS
  • 0

#13 Roberboy

Roberboy

    Newbie

  • Miembros
  • Pip
  • 5 mensajes
  • LocationTlaxcala

Escrito 16 abril 2009 - 08:18

Mil disculpas, lei tarde el item, tu problema se resolví­a simplemente modificando la variable NLS_LANG generada por oracle en el registro de windows generalmente falla cuando tiene el valor de SPANISH_SPAIN.WE...., sólo hay que cambiarlo a MEXICAN SPANISH_MEXICO.WE...

Seguramente el valor del regedit en la otra pc estaba correcto, por eso se resolví­o tu problema de una manera muy sencilla.

Saludos y espero que le sirva a otras personas.
  • 0