Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Implementacion de la Clase conexion ADO (https://www.clubdelphi.com/foros/showthread.php?t=84024)

ginkaku 29-08-2013 02:06:18

Implementacion de la Clase conexion ADO
 
Muy buenas a todos, he buscado en el club algo similar y espero no estar repitiendo.
Yo siempre he utilizado ADOConexion u ODBC en un DataModule donde,por supuesto, arrastramos el componente, cliqueamos para configurarlo y listo, a usarlo sin mas. Lamentablemente necesito esta ves crear mi propia clase que me permita establecer la conexion(con la base de datos) y ejecutar sentencias sql como lo haria un DataSet.
Necesito mucho de su ayuda, sobretodo en la sintaxis que veo que es mi problema. Debo implementarlo en c++(se que es mucho pedir), aunque si tuvieran un ejemplo en delphi, por supuesto yo veria como traducirlo a c++. Bueno seguire probando aver que me sale. Saludos gente!

ecfisa 29-08-2013 04:41:24

Hola ginkaku.

No sé si interpreté bién tu consulta pero te pongo un ejemplo muy simple de creación y asociación de un TADOConnection, un TADOTable, TDataSource y finalmente un TDBGrid para mostrar los datos.

Uso para el ejemplo la tabla Country de bcdemos.mdb que viene con C++ Builder.

Código:

...
  TADOConnection *AC;
  TADOTable      *AT;
  TDataSource    *DS;
  TDBGrid        *GR;


void __fastcall TForm1::FormCreate(TObject *Sender)
{
  AC = new TADOConnection(this);
  AT = new TADOTable(this);
  DS = new TDataSource(this);
  GR = new TDBGrid(this);

  // armar cadena de conexión
  String s1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
  String s2 = "C:\\Program Files\\Common Files\\Borland Shared\\Data\\bcdemos.mdb";
  String s3 = ";Persist Security Info=False;";
  String StrConnect = s1 + QuotedStr(s2) + s3;

  // ADOConnection
  AC->CommandTimeout    = 30;
  AC->ConnectionString  = StrConnect;
  AC->ConnectionTimeout = 15;
  AC->ConnectOptions    << TConnectOption(coConnectUnspecified);
  AC->CursorLocation    << TCursorLocation(clUseClient);
  AC->IsolationLevel    << TIsolationLevel(ilCursorStability);
  AC->KeepConnection    = true;
  AC->LoginPrompt      = false;
  AC->Mode              = cmShareDenyNone;
  AC->Name              = "ADOConnect1";
  AC->Provider          = "Microsoft.Jet.OLEDB.4.0";
  AC->Connected        = true;

  // ADOTable
  AT->Connection = AC;
  AT->TableName  = "Country";
  //...
  AT->Open();

  // DataSource
  DS->DataSet    = AT;
  DS->Enabled    = true;
  DS->AutoEdit  = true;
  // ...

  // DBGrid
  GR->Parent    = this;
  GR->Top        = 10;
  GR->Left      = 10;
  GR->Width      = 800;
  GR->Height    = 400;
  GR->DataSource = DS;
  //...
}

...

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  delete AC;
  delete AT;
  delete DS;
  delete GR;
}

Saludos :)

ginkaku 29-08-2013 06:05:37

Gracias Totales!
 
Grande ecfisa ^\||/, solo te falto compilar mi codigo ;). Era lo que necesitaba y andaba buscando :), ahora puedo dormir tranquilo. Mañana voy a hacer las pruebas finales pero acabas de responder todas mis dudas. Comentare los resultados mas adelante, pero todo parece funcionarme.


La franja horaria es GMT +2. Ahora son las 15:25:01.

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