Turbo Delphi y Firebird???
Hola a todos! Resulta q desde q salio Turbo Delphi para win32 solo utilizo esta version de delphi, en la version explorer.
Y bueno... mi problema esta en q ahora estoy intentando conectarme a una base de datos Firebird... ya que no cuenta con la paleta de componentes para interbase... Buscando por internet entontre este tutorial... el cual me llevo a lograr una conexion... pero a decir verdad no tengo idea de como utilizarla... se q se estableció pero nada mas... y bueno... quisiera saber q componentes usar desde esta version de delphi para conectarme... considerando el hecho de que no puedo instalar componentes de terceros... Aqui dejo la web q encontre: Conexion Turbo Delphi con Interbase (el sitio esta en ingles) y a decir verdad esta muy bien explicado... solo q al ser delphi .net en la version q utilizo no aparecen los componentes... por lo q me trabo al momento de utilizarlos... como puedo conectarme? Desde ya les agradezco mucho si pueden ayudarme! {Saludos} |
Hace meses que no uso Firebird que ya se me esta olvidando lo poco que se.
Muy claramente dijiste que usas delphi for net. .NET usa nativamente ADO.NET para conectarse con BD's. Debes buscar en la pagina de Firebird algun componente que te permita desde delphi for net conectar a firebird. Ah! la instalacion de componentes de terceros creo que no se permite en los turbo personales solo en lo$ profe$ionale$ |
Yo recuerdo que cuando comence a usar turbo delphi en su version explorer, use los componente DBExpress, usa TSQLConnection con el drivername Interbase, generas la cadena de conexión y ya puedes usar TSQLTable, TSQLQuery, TSQLDataSet, etc...
Salud OS. |
Asi es... algo asi estoy intentando hacer... por las dudas aclaro q uso Turbo Delphi Explorer no .net... o sea... el tuto era de .net... si logro conectarme les cuento como me fue y creo q voy a postear como hacerlo porq mucha ayuda no se encuentra sobre el tema... de todos modos muchas gracias por sus respuestas... me sirvieron mucho!:p
{Saludos} |
Cita:
Vamos a crear una seudo-manual haber como nos queda:D:D
Salud OS. |
:eek::eek::eek:
Creo que hay un bug :D en el seudo-manual, si uso un dbgrid me manda un error de que no puede conectarse a un dataset unidireccional, ya lo probé con el TSQLDataSet y me da el mismo error, pero si uso TDBEdit´s si me muestra los datos. Alguien que nos ayude a convertir este seudo-manual en un manual:confused: Salud OS. |
Se vale un truco????
agregue un dasetprovider lo conecte al dataset, un clientdataset cree un datasource para este componente y se conecto perfectamente, sigo buscando soluciones a ver el porq de ese comportamiento |
Cita:
Ahora mi problema esta en que logro "conectar" todos los componentes... pero cuando hago la asignacion al dbgrid este no me muestra los campos de la tabla q le asigné... alguien sabe porq? Mientras sigo intentando... haber si logramos sacar de aqui un buen manual... :D :D y por cierto el seudo-manual esta bueno... digamo q es lo basico... ya vamos a ver si logramos hacerlo un manual... {saludos} |
A q nunca les paso esto jaja!! Se puso muy interesante esto... estaba viendo el porq no podia mostrar los campos en el dbgrid... y bueno... la cosa es q decidi cargarle yo manualmente los campos... pero lo mas interesante es q cuando le inserto una columna y le quiero asignar un campo por ejemplo... el campo nombre de mi tabla... Turbo Delphi se cierra!!! jajaja...
Alguien q sepa el porq?... sigo intentando solucionarlo:D {Saludos} |
Mejorando el Seudo-Manual con el Truco de Eduarcol
Bueno... les cuento q con los q dijo eduarcol logre establecerla a la conexion... por supuesto q no lo hice solo... jajaja... en realidad busque por internet y encontré el metodo q el dice... por ahora voy a explicar los paso para la conexion... mas adelante ire descubriendo bien el porq de todas estas cosas... jajaja... y por las dudas... lo saque de una web de brazil...
Debemos insertar un SQLconnection, SQLDataSet, DataSetProvider, ClientDataSet y un DataSource. SQLconnection Login Prompt = False Connected = True Name = sqlconnection1 (Por supuesto q hay q establecer la conexion como lo veniamos haciendo) SQLDataSet SqlConnection = sqlconnection1 Name = sdstabla CommandText = select * from TABLA Active = False (Le hacemos doble clic al componente y presionamos control+F y asi se agregar todos los campos) DataSetProvider Propriedade = Valor dataset = sdstabla Name = dsptabla ClientDataSet Propriedade = Valor Providername = dsptabla Name = cdstabla Active = True (Hay q adicionar todos los campos como se hizo con el SQLDataSet) DataSource Propriedade = Valor DataSet = cdsTabla Name = dsTabla Finalmente solo se trata de insertar un dbgrid o donde quieran mostrar la info de la tabla y conectar con el data source... por las dudas si no les muestra los campos en el datasource insertenlo manualmente;) Despues sigo completando! El q quiera puede seguir ayudando! {Saludos} |
Bueno a mi esa solucion me parece mas bien un truco :D:D:D:D
habria que ver el porq?? |
jaja... si puede ser... depende como lo veas... en realidad no encontre otra forma de establecer la conexion con las dbexpress... por lo q no creo q sea un truco... si se puede decir q es un metodo...
Ahora la cuestion es como hacer para agregar, modificar y eliminar registros de la tabla... alguna idea? o truco?... Estoy intentando pero la verdad q ya no se como hacerlo... lo intente con: Código:
sqltable1.append; Gracias!! {Saludos} |
Guardar registros
Hola, como bien dices es la forma de implementar el acceso a la base de datos con dbexpress, el ClientDataSet el el componente que te permite navegar con una tabla unidireccional a traves del DataSetProvider. Para guardar registros, en el momento que te interese, deberas llamar al metodo ApplyUpdates( nRegistrosConErroresPermitidos ) para que guarde los cambios realizados en el componente ClientDataSet (mirate la implementación del ReconcileError ). Tanto en el SQLDataSet como en el ClientDataSet, tendrás que indicar en las columnas de estos componentes (FieldColumns), cuales son los campos clave para la actualización (propiedad ProviderFlags, las tres primeras a TRUE, y en el resto de campos solo la primera a TRUE ). Tambien deberás aplicar los parametros pertinentes al DataSetProvider para permitir eliminación de registros en cascada, actualización de varios registros, etc...
Si quieres establecer una relación maestro-detalle, deberas conectar dos SQLDataSet mediante un DataSource y dos ClientDataSet, conectando el segundo al primero mediante su propiedad DataSetField, el cual es una columna del primer ClientDataSet ( al añadir las columnas en el ClientDataSet, el ultimo campo es del tipo ClientDataSet ). La sentencia SQL para el segundo SQLDataSet es del tipo siguiente:
la declaración Código:
:CAMPOCLAVE Espero que te aclare un poco el uso de DBExpress. un saludo |
No logro grabar datos
Hola... de nuevo estuve retomando la idea de usar dbexpress, y bueno lo que hice fue insertar un sqlquery, en la propiedad sql, en tiempo de ejecucion le cargo la siguiente sintaxis:
Algo asi es el codigo, pero me aparece un error, por lo que no logro guardar los datos, no se si el error que me aparece sera importante de colocar, porq ni siquiera se si estoy haciendo bien las cosas... por eso si alguien cree q esta bien, entonces posteo el mensaje, y sino alguien puede ayudarme para guardar la info en una tabla? Muchisimas Gracias! {Saludos} |
Los campos que no sean numéricos debes ponerlos entre comillas
|
Muchas Gracias Basti por la correccion, y evidentemente iba por ahi la cuestion, pero ahora tengo otro problema, me aparece el siguiente error:
'query: Cursor not returned from Query' Por las dudas lo unico q cambie en mi TSQLQuery de las propiedades es la propiedad: SqlConnection, luego le dejo el active en false ya que no tiene ningun codigo ingresado en la propiedad sql... Alguna idea? Y tambien como hago para guardar una fecha? Una vez mas muchas gracias! {Saludos} |
La franja horaria es GMT +2. Ahora son las 13:10:42. |
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