Ver Mensaje Individual
  #1  
Antiguo 30-05-2007
Martín González Martín González is offline
Registrado
 
Registrado: may 2007
Posts: 5
Reputación: 0
Martín González Va por buen camino
Thumbs up Como ejecutar Query c/AxaptaComConnector ?

BDD: SQL SErver.
ERP: Axapta.
Utilizando delphis puedo mediante un AxaptaCOMConnector estar en el "ambiente" Axapta y poder generar su RecId -consecutivo que Axapta genera por Empresa-.

Actualmente manejo este codigo y la consulta es general.

procedure TForm1.Button2Click(Sender: TObject);
var
Axapta,AxaptaQuery,AxaptaDataSource,
AxaptaQueryRun,AxaptaRange,AxaptaTableBuffer: variant;
AxaptaExecute : variant;
AxRec,no_tabla : variant;
nombre_tabla : string;
begin
ListBox1.Clear;
Axapta:=CreateOleObject('AxaptaCOMConnector.Axapta2');
Axapta.Logon2('act', 'act', '', '', '10.10.1.13', 'bmssafh');
AxRec :=Axapta.CreateObject('Clase_Global_FH');
nombre_tabla := 'actividad';
no_tabla := AxRec.Call('Obtener_Id_Tabla',nombre_tabla);
AxaptaQuery := Axapta.CreateObject('Query');
AxaptaDataSource := AxaptaQuery.Call('AddDataSource',no_tabla);
// AxaptaRange := AxaptaDataSource.Call('AddRange', 'dataareaid');
// AxaptaRange.Call('Value', 'fhl');
AxaptaQueryRun := Axapta.CreateObject( 'QueryRun', AxaptaQuery);
While (AxaptaQueryRun.Call('Next')) do
begin
AxaptaTableBuffer := AxaptaQueryRun.Call('GetNo', 1);
ListBox1.Items.Add(AxaptaTableBuffer.field['descripcion_actividad']);
end;
end;


De que manera puedo realizar el simil de un where campo1 = var and campo2=var2 ...etc
Ejemplo:
select * from actividad where dataareaid = 'fhl'
1.-
// AxaptaRange := AxaptaDataSource.Call('AddRange', 'dataareaid');
// AxaptaRange.Call('Value', 'fhl');

2.- Con una sentencia

O de esta forma.

procedure TForm1.btn_InsertarClick(Sender: TObject);
var
Axapta,AxaptaQuery,AxaptaDataSource,
AxaptaQueryRun,AxaptaRange,AxaptaTableBuffer: variant;
AxRec : variant;
val1 :variant;
begin
Axapta:=CreateOleObject('AxaptaCOMConnector.Axapta2');
Axapta.Logon2('act', 'act', '', '', '10.10.1.13', 'bmssafh');
AxRec := Axapta.CreateRecord('actividad');
axRec.ExecuteStmt('select * from actividad where dataareaid = 'fhl' ');
val1:=axRec.field['descripcion_actividad'];
end;

Pero no funciona, alguna sugerencia?.

Gracias y saludos Cordiales.
Responder Con Cita