Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-06-2011
Jorge Orozco Jorge Orozco is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 25
Poder: 0
Jorge Orozco Va por buen camino
Angry Pasar informacion de Access a SQL

Tengo un problema y es el siguiente: Tengo dos tablas en access, una tengo el encabezado de la factura y en la otra el detalle de dicha factura, necesito pasar esto a SQL, pero no me funciona, ejemplo, si quiero pasar tres facturas el pgm me pasa las tres facturas pero luego de esto me pasa dos del las tres y luego una de las dos. ejemplo mas detallado, tengo las facturas 125,126 y 127, ella me las pasa pero luego me pasa la 125 y 126 y luego de eso me pasa la 127.
En detalle el codigo es el siguiente:

{ =============== }
{ CAPTURA DEPOSIT } // Lista!!!
{ =============== }
{$REGION 'CAPTURA DEPOSIT'}
procedure grabatrans_deposit;
var xsol : iDepositAdd; // Comando
xDepositLineAdd : iDepositLineAdd;
i,xregistros : Integer;
xid : String;
begin
// SOLICITUD DE INCLUSION
xmensaje.ClearRequests;
xsol := xmensaje.AppendDepositAddRq;

// Tablas
DMConexion.Destino1.Close;
DMConexion.Destino1.TableName := 't5_deposit';
DMConexion.Destino1.Open;
xregistros := 0;
while not DMConexion.Destino1.Eof do
begin
if DMConexion.Destino1.FieldByName('CashBackInfoRetAccRefFullName').AsVariant<>null then
xsol.CashBackInfoAdd.AccountRef.FullName.SetValue(DMConexion.Destino1.FieldByName('CashBackInfoRetAc cRefFullName').AsString);
if DMConexion.Destino1.FieldByName('CashBackInfoRetAmount').AsVariant<>null then
xsol.CashBackInfoAdd.Amount.SetValue(DMConexion.Destino1.FieldByName('CashBackInfoRetAmount').AsFloa t);
if DMConexion.Destino1.FieldByName('CashBackInfoRetMemo').AsVariant<>null then
xsol.CashBackInfoAdd.Memo.SetValue(DMConexion.Destino1.FieldByName('CashBackInfoRetMemo').AsString);
// DMConexion.Destino1.FieldByName('CashBackInfoRetTxnLineID').AsString := x_iDepositRetList.GetAt(i).CashBackInfoRet.TxnLineID.GetValue;
// DMConexion.Destino1.FieldByName('CashBackInfoRettype_').AsInteger := x_iDepositRetList.GetAt(i).CashBackInfoRet.type_.GetValue;
if DMConexion.Destino1.FieldByName('DepositToAccountRefFullName').AsVariant<>null then
xsol.DepositToAccountRef.FullName.SetValue(DMConexion.Destino1.FieldByName('DepositToAccountRefFullN ame').AsString);
// DMConexion.Destino1.FieldByName('DepositTotal').AsFloat := x_iDepositRetList.GetAt(i).DepositTotal.GetValue;
if DMConexion.Destino1.FieldByName('Memo').AsVariant<>null then
xsol.Memo.SetValue(DMConexion.Destino1.FieldByName('Memo').AsString);
if DMConexion.Destino1.FieldByName('TxnDate').AsVariant<>null then
xsol.TxnDate.SetValue(DMConexion.Destino1.FieldByName('TxnDate').AsDateTime);
// DMConexion.Destino1.FieldByName('TxnID').AsString := x_iDepositRetList.GetAt(i).TxnID.GetValue;
// DMConexion.Destino1.FieldByName('TxnNumber').AsInteger := x_iDepositRetList.GetAt(i).TxnNumber.GetValue;
// DMConexion.Destino1.FieldByName('type_').AsInteger := x_iDepositRetList.GetAt(i).type_.GetValue;

// falta es lista: x_iDepositRetList.GetAt(i).DataExtRetList.Count-1 do

// **********************
// *** LINEAS DETALLE ***
// **********************

// DMConexion.q.Create(nil);

// dmConexion.q.Create(dmConexion);

DMConexion.q.Connection:= dmConexion.Base2;
//- dmConexion.q.SQL.Create;
dmConexion.q.SQL.Clear;
DMConexion.q.Close;
xid := Copy(DMConexion.Destino1.FieldByName('TxnID').AsString,(Pos('-',DMConexion.Destino1.FieldByName('TxnID').AsString)+1),100);
xid := TrimRight(xid);

DMConexion.q.SQL.Add('select * from t5_deposit_det where TxnLineID like "%'+xid+'%"');
DMConexion.q.Open;
if not DMConexion.q.IsEmpty then Begin
while not DMConexion.q.Eof do
begin
xDepositLineAdd := xsol.DepositLineAddList.Append;
if DMConexion.q.FieldByName('AccountRefFullName').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.AccountRef.FullName.SetValue(DMConexion.q.FieldByName(' AccountRefFullName').AsString);
if DMConexion.q.FieldByName('Amount').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.Amount.SetValue(DMConexion.q.FieldByName('Amount').AsFl oat);
if DMConexion.q.FieldByName('CheckNumber').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.CheckNumber.SetValue(DMConexion.q.FieldByName('CheckNum ber').AsString);
if DMConexion.q.FieldByName('ClassRefFullName').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.ClassRef.FullName.SetValue(DMConexion.q.FieldByName('Cl assRefFullName').AsString);
if DMConexion.q.FieldByName('EntityRefFullName').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.EntityRef.FullName.SetValue(DMConexion.q.FieldByName('E ntityRefFullName').AsString);
if DMConexion.q.FieldByName('Memo').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.Memo.SetValue(DMConexion.q.FieldByName('Memo').AsString );
if DMConexion.q.FieldByName('PaymentMethodRefFullName').AsVariant<>null then
xDepositLineAdd.ORDepositLineAdd.DepositInfo.PaymentMethodRef.FullName.SetValue(DMConexion.q.FieldBy Name('PaymentMethodRefFullName').AsString);
// xDepositLineAdd.ORDepositLineAdd.DepositInfo.TxnID.SetValue(DMConexion.q.FieldByName('TxnID').AsStri ng);
// xDepositLineAdd.ORDepositLineAdd.DepositInfo.TxnLineID.SetValue(DMConexion.q.FieldByName('TxnLineID' ).AsString);
// xDepositLineAdd.ORDepositLineAdd.DepositInfo.TxnType.SetValue(DMConexion.q.FieldByName('TxnType').As String);

DMConexion.q.Next;
end;


//- dmConexion.q.Destroy;
// ***************
// HACE EL REQUEST
// ***************
xresponseSet := nil; // Limpia Respuestas
xresponseSet := xSessionManager.DoRequests(xmensaje); // Ejecuta la Solicitud
xresponse := xResponseSet.ResponseList.GetAt(0);
//DMConexion.q.Close;

End;


if xresponse.StatusCode <> 0 then
FMain.Memo1.Lines.Add('ERROR: Exportando Transacciones Deposit'+#13#10+
StringOfChar(' ',11)+'STATUS CODE: '+IntToStr(xresponse.StatusCode)+
' SEVERITY: '+xresponse.StatusSeverity+#13#10+
StringOfChar(' ',11)+'MESSAGE: '+xresponse.StatusMessage+#13#10)
else
Inc(xregistros);
if xregistros<3 then
begin
DMConexion.Destino1.Next;
end
else
DMConexion.Destino1.Close;
end;
FMain.Memo1.Lines.Add(IntToStr(xregistros)+' Registros de: Transacciones Deposit transferidos...');
FMain.Memo1.Lines.Add(StringOfChar('=',55));
Application.ProcessMessages;
end;
{$ENDREGION}

Cualquier cosa me pueden mandar una sugerencia al siguiente correo:
jorozco1000@hotmail.com

Gracias Amigos
Responder Con Cita
  #2  
Antiguo 17-06-2011
luchifer luchifer is offline
No confirmado
 
Registrado: jul 2007
Ubicación: Santa Cruz - Bolivia
Posts: 50
Poder: 0
luchifer Va por buen camino
Dentro del administrador corporativo del SQL, en herramientas, existe la opcion de importar y exportar datos. Mejor usa esas opciones y te simplificas toda la historia de migrar con codigos.

Otra alternativa es que utilices el comando BCP que corre en modo consola y del cual puedes filtrar los registros y campos que desees. LLevandolos primero a archivos planos y de ahi los sube a SQL en un abrir y cerrar de ojos. Por ejem. El otro dia migre con este comando 280000 registros en menos de 5 segundos y los subi a la tabla que queria en menos de 15 segundos incluida la validacion d constraints y claves
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
Pasar informacion de delphi a word warrior79 Servers 3 10-07-2010 04:31:00
Pasar informacion de un dbgrid a otro schaka Conexión con bases de datos 3 11-02-2008 10:15:32
como pasar informacion de ibexpert a access Nelly Varios 1 05-04-2006 09:38:51
pasar la informacion de un memo a un quickreport soyhugo Varios 1 27-02-2004 18:36:05
Pasar información de un form a otro davidgaldo Varios 3 10-02-2004 19:00:34


La franja horaria es GMT +2. Ahora son las 01:26:31.


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