PDA

Ver la Versión Completa : Algun Ejemplo?


b3nshi
04-09-2007, 02:57:02
Les cuento q voy escribiendo cerca de 6 veces este mensaje, y entre mi PC q se clava, y la conexion q se desconecta lo voy perdiendo...

Me gustaria saber si hay alguien q pueda subir un codigo de ejemplo de una conexion a FireBird con Turbo Delphi usando DBExpress, y q se graben registros.

Les cuento tambein q hace varios dias vengo intentando hacerlo... y no obtengo resultado muy buenos. Ya q si logro escribir los datos, pero me aparece un error al hacerlo, y luego no me los muestra desde mi aplicacion...

Como se q se escriben los datos? Pues, porq abro la base de datos con IBAccess, entro en la tabla y cuando voy a ver lo q tiene escrito, si hago clic en transacciones alli me aparecen todos los registros q grabe desde mi aplicacion...

Pero el problema es q no logro mostrarlos despues.

Por eso, y como creo q este es un tema q a muchos le interesa, alguien no tiene por ahi algun ejemplo? Uno donde graben los datos desde distintos edits usando SQL, ya q vi un ejemplo en el q usa applyupdate() de una tabla, pero no sirve si se quieren grabar los datos como me gustaria hacerlo.

Ya lei muchos tutos, y busque en la web y nada... todavia no consigo hacerlo, mientras espero alguna respuesta voy a seguir intentando, pero de todos modos si alguien puede facilitar la tarea de aprender, les estaria muy agradecido.

Muchas Gracias!

{Saludos}

ContraVeneno
04-09-2007, 16:08:26
siempre que a mi me sale un error, lo resuelvo con una solución... es la segunda vez en este día que explico eso, pero en fin... lo que trato de decir, es que si nos dijeras cuál es el error, sería más facil.

¿un ejemplo de insertar datos de edits a una base de datos?


with TuQuery do begin
If Active then Close;
SQL.Clear;
SQL.Add('Insert into UnaTabla(campo1, Campo2)');
SQL.Add('Values( :Campo1, :Campo2)');
ParamByName('Campo1').AsString := UnEdit.Text;
ParamByName('Campo2').AsInteger := JediValidateEdit.AsInteger;
ExecSQL;
end; //with

b3nshi
04-09-2007, 16:18:10
Si, es un buen punto... pero digamos q ya lo habia puesto en otro mensaje a mi problema, por eso es q no queria repetirlo.

Ahora pruebo esto y te diré si da o no resultado.

En cuanto al error q me aparece es el siguiente:

'query: Cursor not returned from Query'

En un rato te aviso si me dio resultado.

Muchas Gracias

{Saludos}

Paoti
04-09-2007, 16:28:11
Hola, yo estuve siguientdo el video, del link que te voy a mostrar a continuación y es fácil ir haciendolo, usa SQL server pero yo use firebird y turbo delphi.



espero te sirva. es un video....


saludos

http://dn.codegear.com/article/34187

b3nshi
04-09-2007, 16:38:11
Perfecto! Va... eso creo...

Porq ahora llega sin problemas y sin causar ningun error hasta mostrarme un mensaje de que se guardaron los datos...

Pero ahora el problema es q intento mostrarlos y nada!

O sea... cambio la sintaxis del sql en el query por:

Select * from Tabla

Y nada... no me muestra lo grabado...:confused:

Estoy haciendo algo mal?

Alguien puede explicarme mas o menos de q se tratan las transaccinoes y si tienen algo q ver con esto?

Muchas Gracias!

{Saludos}

ContraVeneno
04-09-2007, 16:44:52
with TuQuery do begin
If Active then Close;
SQL.Clear;
SQL.Add('Insert into UnaTabla(campo1, Campo2)');
SQL.Add('Values( :Campo1, :Campo2)');
ParamByName('Campo1').AsString := UnEdit.Text;
ParamByName('Campo2').AsInteger := JediValidateEdit.AsInteger;
TuBaseDatos.StartTransaction;
Try
ExecSQL;
Except on E:Exception do begin
TuBaseDatos.Rollback;
Raise;
Exit;
end; //execpt
End; //Try
TuBaseDatos.Commit;

If Active then Close;
SQL.Clear;
SQL.Add('Select * from TuTabla');
Open;
TuDBGrid.Refresh;
end; //with



Si te fijas, en caso de error, primero se hace el RollBack y luego se presenta el mensaje de error. Hay que tener cuidado con esto porque es muy común que primero muestran el mensaje de error y después hacen el rollback. El problema con eso, es que cuando a un usuario le aparece el mensaje de error, así lo deja en la pantalla hasta que alguien le explica cuál fue el problema, o incluso dejan el mensaje en pantalla y se van a comer. Y al dejar el mensaje en la pantalla, el rollback nunca se ejecuta y dejan la transacción activa, ocasionando que el sistema se bloquee. Por eso es importante hacer primero el rollback y después mostrar el mensaje.

b3nshi
04-09-2007, 16:54:43
Ah ah! Mira vos! Ahora si! Ya entiendo!

Muchisimas gracias ContraVeneno!

Ya logre hacer lo que necesitaba! Ahora veré si los completo un poquito mas y lo subo como un ejemplo para aquellos a los q les esta costando tambien!

Una vez mas muchisimas gracias!

Y bueno... ya vere si tengo otro problema... aunque por ahora creo q no:D

{Saludos}

Paoti
04-09-2007, 17:13:40
sí, seria genial que lo subueras, camarada



saludos...

b3nshi
06-09-2007, 23:39:10
Acabo de terminar de arreglar mi PC... y estoy terminando de bajar Turbo Delphi Nuevamente...

Bien lo tenga terminado al ejemplo lo subo...

{Saludos}