Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 22
b3nshi Va por buen camino
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}
Responder Con Cita
  #2  
Antiguo 03-08-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 27
eduarcol Va por buen camino
Bueno a mi esa solucion me parece mas bien un truco

habria que ver el porq??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #3  
Antiguo 04-08-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 22
b3nshi Va por buen camino
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;
sqltable1.fieldbyname('').asstring := '' ; //Lo estoy escribiendo de memoria, por
//lo q puede haber algun error pero creo q se entiende cual es el metodo...
 
//Tambien lo intente haciendo uso de un query... pero no dio resultado...
Alguna idea
Gracias!!
{Saludos}

Última edición por b3nshi fecha: 04-08-2007 a las 00:07:27.
Responder Con Cita
  #4  
Antiguo 22-08-2007
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 20
JosepGA Va por buen camino
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:

Código SQL [-]
SELECT * FROM TABLA2 WHERE CAMPOCLAVE = :CAMPOCLAVE ORDER BY CAMPOCLAVE2

la declaración
Código:
:CAMPOCLAVE
significa que agui tienes que poner el nombre del campo del SQLDataSet1 que se identifica con el del SQLDataSet2, al poner los dos puntos indicas que es un parametro que se recibe del SQLDataSet1 en forma de campo de la tabla y sin que tu lo tengas que especificar.

Espero que te aclare un poco el uso de DBExpress.

un saludo
Responder Con Cita
  #5  
Antiguo 03-09-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 22
b3nshi Va por buen camino
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:

Código Delphi [-]
sqlquery.sql.add(widestring('insert into PASCIENTES ( APELLIDO, NOMBRE, DIRECCION, 
EDAD, NACIMIENTO, TELEFONO, SEXO)  values (' + edit1.Text + ',' + edit2.Text + ',' 
+ edit3.Text + ',' + edit4.Text + ',' + edit5.Text + ',' + edit6.Text + ',' 
+ edit7.Text + ')');
sqlquery.active:= true;

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}

Última edición por b3nshi fecha: 03-09-2007 a las 07:04:13. Razón: porq el codigo delphi es muy ancho
Responder Con Cita
  #6  
Antiguo 03-09-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 22
basti Va por buen camino
Los campos que no sean numéricos debes ponerlos entre comillas

Código Delphi [-]
sqlquery.sql.add(widestring('insert into PASCIENTES ( APELLIDO, NOMBRE, ...)  values (' + quotedstr(edit1.Text) + ',' + quotedstr(edit2.Text) + ... + ')');
sqlquery.active:= true;
__________________
Saludos.
Responder Con Cita
  #7  
Antiguo 03-09-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 22
b3nshi Va por buen camino
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}
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
de turbo delphi a Lazarus totote Lazarus, FreePascal, Kylix, etc. 3 12-06-2007 07:15:21
Turbo Delphi o BDS Ezecool Varios 1 04-06-2007 20:56:55
Turbo delphi explorer mario2000 Noticias 10 15-05-2007 23:23:08
Turbo delphi gratuito? fedelphi Noticias 20 22-11-2006 01:56:45
Imprimir con Turbo delphi jorllazo Impresión 8 01-11-2006 19:16:02


La franja horaria es GMT +2. Ahora son las 23:35:42.


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