Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2005
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Question Acceder a un DataSet (.NET) desde otra Unidad

Buenas, ¿cómo puedo acceder a un componente DataSet (.NET) desde otra unidad? Adjunto un pequeño ejemplo con el error que me da señalado en negrita.

En .NET ¿existen algún componente similar al DataModule o al RemoteDataModule de Delphi Win32?

Gracias.

MiUnidad1
========

Type

MiForm = class(System.Windows.Forms.Form)

//strict private
Public

Componente1: System.Windows.Forms.Label;
Componente2: System.Windows.Forms.Label;
...

MiDataSet: System.Data.DataSet;
MiBdpDataAdapter: Borland.Data.Provider.BdpDataAdapter;
MiBdpConnection: Borland.Data.Provider.BdpConnection;
MiBdpCommand: Borland.Data.Provider.BdpCommand;
DataTable1: System.Data.DataTable;
DataColumn1: System.Data.DataColumn;
DataColumn2: System.Data.DataColumn;
DataColumn3: System.Data.DataColumn;
DataColumn4: System.Data.DataColumn;
DataColumn5: System.Data.DataColumn;
DataColumn6: System.Data.DataColumn;
DataColumn7: System.Data.DataColumn;
DataColumn8: System.Data.DataColumn;
...
End;


MiUnidad2
========

Uses MiUnidad1;

...

Procedure prueba;
Begin

Componente1.Text := 'prueba';
MiDataSet.Tables.... {<-- DESDE la Unidad2 no me reconoce como definido el componente MiDataSet pero sí el Componente1}

End;
Responder Con Cita
  #2  
Antiguo 16-10-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Mira a ver si la conversacion sostenida en este hilo te puede ser de ayuda.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #3  
Antiguo 16-10-2005
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Smile Gracias

Muchas gracias por la información.
Responder Con Cita
  #4  
Antiguo 16-10-2005
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Question Sigo igual

Me parece que la explicación de ese hilo es para usuarios de Visual Basic, la cual cosa no coincide plenamente con la sintaxis de Delphi. Yo ya tengo creado el dataset como público, que es una de las cosas que ahí se indica, pero nada, sigo sin poder compartir el dataset con otra unidad. Ya me estoy volviendo loco.
Responder Con Cita
  #5  
Antiguo 17-10-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
mmm, el lenguaje en que esta escrito es en realidad C# y, no debe haber mucha diferencia en el funcionamiento frente a lo que quieres hacer en delphi. Solo tienes que definir el objeto como estatico (static en c#, shared en VB, no se que palabra clave usa delphi) y utilizarlo desde cualquier otro formulario de la forma NombreClase.NombreDataSet.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #6  
Antiguo 18-10-2005
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Poder: 21
SMTZ Va por buen camino
Post Dataset manual

Buenas, al final he optado por crear el dataset a mano. No es lo que me hubiera gustado, que para eso existen los componentes graficos, pero funciona:

=======================

unit WinFormU;

interface

uses
System.Drawing, System.Collections, System.ComponentModel,
System.Windows.Forms, System.Data, System.Globalization,
Borland.Data.Provider, DataSetU;

type
TWinForm = class(System.Windows.Forms.Form)
{$REGION 'Designer Managed Code'}
strict private
/// <summary>
/// Required designer variable.
/// </summary>
Components: System.ComponentModel.Container;
DataGrid1: System.Windows.Forms.DataGrid;
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure InitializeComponent;
{$ENDREGION}
strict protected
/// <summary>
/// Clean up any resources being used.
/// </summary>
procedure Dispose(Disposing: Boolean); override;
private
{ Private Declarations }
public
constructor Create;
end;

[assembly: RuntimeRequiredAttribute(TypeOf(TWinForm))]

implementation

{$AUTOBOX ON}

{$REGION 'Windows Form Designer generated code'}
/// <summary>
/// Required method for Designer support -- do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure TWinForm.InitializeComponent;
begin
Self.DataGrid1 := System.Windows.Forms.DataGrid.Create;
(System.ComponentModel.ISupportInitialize(Self.DataGrid1)).BeginInit;
Self.SuspendLayout;
//
// DataGrid1
//
Self.DataGrid1.DataMember := '';
Self.DataGrid1.HeaderForeColor := System.Drawing.SystemColors.ControlText;
Self.DataGrid1.Location := System.Drawing.Point.Create(8, 16);
Self.DataGrid1.Name := 'DataGrid1';
Self.DataGrid1.Size := System.Drawing.Size.Create(280, 240);
Self.DataGrid1.TabIndex := 0;
//
// TWinForm
//
Self.AutoScaleBaseSize := System.Drawing.Size.Create(5, 13);
Self.ClientSize := System.Drawing.Size.Create(292, 266);
Self.Controls.Add(Self.DataGrid1);
Self.Name := 'TWinForm';
Self.Text := 'WinForm';
(System.ComponentModel.ISupportInitialize(Self.DataGrid1)).EndInit;
Self.ResumeLayout(False);
end;
{$ENDREGION}

procedure TWinForm.Dispose(Disposing: Boolean);
begin
if Disposing then
begin
if Components <> nil then
Components.Dispose();
end;
inherited Dispose(Disposing);
end;

constructor TWinForm.Create;
begin
inherited Create;
//
// Required for Windows Form Designer support
//
InitializeComponent;
//
// TODO: Add any constructor code after InitializeComponent call
//
end;

end.

=======================

unit DataSetU;

interface

Uses
System.Data, Borland.Data.Provider;

Type
TMiBD = Record
MiDataSet : DataSet;
MiAdaptador : BdpDataAdapter;
MiConexion : BdpConnection;
MiComando : BdpCommand;

End;

Var
MiBD : TMiBD;

implementation

Begin

With MiBD Do
Begin

MiDataSet := DataSet.Create ( 'MiBD');

MiConexion := BdpConnection.Create;
MiConexion.ConnectionOptions := 'transaction isolation' +
'=ReadCommitted';
MiConexion.ConnectionString := 'database=Ecodomes;asse' +
'mbly=Borland.Data.Oracle, Version=2.0.0.0, Culture=neutral, PublicKeyToke' +
'n=91d62ebb5b0d1b1b;vendorclient=oci.dll;provider=Oracle;username=system;p' +
'assword=cz4lg3';

MiComando := Borland.Data.Provider.BdpCommand.Create;
MiComando.CommandOptions := nil;
MiComando.CommandText := 'select * from usuarios';
MiComando.CommandType := System.Data.CommandType.Text;
MiComando.Connection := MiConexion;
MiComando.ParameterCount := (SmallInt(0));
MiComando.SchemaName := nil;
MiComando.Transaction := nil;
MiCOmando.UpdatedRowSource := System.Data.UpdateRowSource.None;

MiAdaptador := BDPDataAdapter.Create;
MiAdaptador.DataSet := MiDataSet;
MiAdaptador.SelectCommand := MiComando;
MiAdaptador.SelectCommand.CommandText := 'select * from usuarios';
MiAdaptador.Fill(MiDataSet);
MiAdaptador.Active := True;

End;

end.
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


La franja horaria es GMT +2. Ahora son las 10:31:56.


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