Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2014
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
crear componentes dbexpress en hilos de ejecucion

reciban un cordial saludo.

estoy desarrollando un aplicativo en delphi xe4 con base de datos mysql, el programa crea varios hilos de ejecucion y en cada hilo se crean componentes sqlconnection, datasetprovider, clientdataset, etc.
Código Delphi [-]
 sqlconnection1:=TSQLConnection.Create(nil);
  sqlconnection1.DriverName:='MySQL';
  sqlconnection1.Params.Append('DriverName=MySQL');
  sqlconnection1.Params.Append('DriverUnit=Data.DBXMySQL');
  sqlconnection1.Params.Append('DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver180.bpl');
  sqlconnection1.Params.Append('DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Dat  a.DbxCommonDriver,Version=18.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b');
  sqlconnection1.Params.Append('MetaDataPackageLoader=TDBXMySqlMetaDataCommandFactory,DbxMySQLDriver18  0.bpl');
  sqlconnection1.Params.Append('MetaDataAssemblyLoader=Borland.Data.TDBXMySqlMetaDataCommandFactory,Bo  rland.Data.DbxMySQLDriver,Version=18.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b');
  sqlconnection1.Params.Append('LibraryName=dbxmys.dll');
  sqlconnection1.Params.Append('LibraryNameOsx=libsqlmys.dylib');
  sqlconnection1.Params.Append('VendorLib=LIBMYSQL.dll');
  sqlconnection1.Params.Append('VendorLibWin64=libmysql.dll');
  sqlconnection1.Params.Append('VendorLibOsx=libmysqlclient.dylib');
  sqlconnection1.Params.Values['HostName']:=host2;
  sqlconnection1.Params.Append('Database=$$$$$$$') ;
  sqlconnection1.Params.Add('User_Name=xxxxxxx');
  sqlconnection1.Params.Add('Password=$$$$$$$');
  sqlconnection1.LoginPrompt:=False;
  sqlconnection1.AfterConnect:=sqlconnection1afterconnect;
  sqlconnection1.AfterDisconnect:=sqlconnection1afterdisconnect;

creamos los otros componentes

Código Delphi [-]
hactualiza:=TSQLDataSet.Create(nil);
  hactualiza.SQLConnection:=sqlconnection1;
  hactualiza.CommandType:=ctQuery;
  hactualiza.CommandText:='Select * from actualiza';
  datahactualiza:=tdatasetprovider.Create(nil);
  datahactualiza.DataSet:=hactualiza;
  chactualiza:=Tclientdataset.Create(nil);
  chactualiza.SetProvider(datahactualiza);
 //chactualiza.AfterPost:=chactualizaafterpost;

cuando abrimos los clientdataset funciona bien pero cuando solicitamos un refresh genera un error diciendo que no tiene datasetprovider asignado.

creo que me falta algo en la creacion de los componentes.
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas
Goethe
Responder Con Cita
  #2  
Antiguo 06-05-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Hola.

Yo siempre he definido las claves primarias en los campos del clientdataset y en el datasetprovider pongo la propiedad UpdatedMode como upWhereKeyOnly.

A ver si te sirve,
__________________
http://www.gestionportable.com
Responder Con Cita
  #3  
Antiguo 06-05-2014
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
Perdona mi ignorancia

Como hago para definir las claves primarias en el client data set
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas
Goethe
Responder Con Cita
  #4  
Antiguo 06-05-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Perdón, no es en el clientdataset, es en el SQLDataSet.

Prueba así :

__________________
http://www.gestionportable.com
Responder Con Cita
  #5  
Antiguo 06-05-2014
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
Gracias por tu respuesta

El tema es que estoy trabajando en dbexpress y el ejemplo que colocas veo es en zeos, aplica de la misma manera para estos componentes
__________________
No basta con saber es necesario aplicar lo que se sabe, no basta con querer hacer las cosas es necesario hacerlas
Goethe
Responder Con Cita
  #6  
Antiguo 06-05-2014
Avatar de pacopenin
pacopenin pacopenin is offline
Miembro
 
Registrado: sep 2010
Ubicación: Asturias
Posts: 382
Poder: 14
pacopenin Va por buen camino
Es algo similar, por eso lo puse. No tengo ningún proyecto disponible con dbexpress.
__________________
http://www.gestionportable.com
Responder Con Cita
Respuesta



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
Crear Hilos de Ejecución con TIdFTP JAI_ME Varios 12 13-12-2013 18:28:39
como crear componentes ado en tiempo de ejecucion richy08 Conexión con bases de datos 30 15-07-2010 16:31:32
como crear hilos de ejecucion en delphi 2007 pablopessoa Varios 1 23-10-2008 19:11:08
Crear componentes en tiempo de ejecución Mauro® Varios 6 23-08-2007 19:45:29
Crear Componentes en tiempo de ejecucion fartycl Varios 3 21-06-2006 22:03:13


La franja horaria es GMT +2. Ahora son las 09:59:51.


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