Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Migrar Registros

Saludos, una pregunta,
Tengo una tabla en access que tiene 3,155,602 registros, cuando intento importarlo a SQL server 2018, solo importa 65,534.

Alguna idea para migrarlos todos? o es mejor, utilizarlos desde ahi? (utilizar ambas bases de datos)

Que contiene la base de datos? la lista de RNC de mi Pais.
Responder Con Cita
  #2  
Antiguo 26-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que lo más fácil es que lo leas directamente del fichero original, que es un texto normal.
Responder Con Cita
  #3  
Antiguo 26-12-2018
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Fíjate que exporta justo 65.534, es decir, casi el máximo que permite direccionar con 16 bits (63.535). Me hace sospechar que hay un campo con la ID que debería ser de, al menos, 32 bit pero que se ha definido como 16. Revisa la definición de los campos.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 26-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Creo que lo más fácil es que lo leas directamente del fichero original, que es un texto normal.
Esta en este formato.

Como esta dividido por | Solo me interesa obtener la primera, segunda y cuarta al momento de hacer una consulta.
Imagen



Cita:
Empezado por Ñuño Martínez Ver Mensaje
Fíjate que exporta justo 65.534, es decir, casi el máximo que permite direccionar con 16 bits (63.535). Me hace sospechar que hay un campo con la ID que debería ser de, al menos, 32 bit pero que se ha definido como 16. Revisa la definición de los campos.
Si mal no recuerdo en una de las pruebas puse todos los campos VarcharMax y hacia lo mismo...
Responder Con Cita
  #5  
Antiguo 26-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No somos adivinos y no vemos tu ordenador/computadora.
Responder Con Cita
  #6  
Antiguo 26-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No somos adivinos y no vemos tu ordenador/computadora.
Puse la imagen, no entiendo el porqué de tu sarcasmo, por si acaso, uso delphi 7.
Responder Con Cita
  #7  
Antiguo 26-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por feliz-58 Ver Mensaje
Puse la imagen, no entiendo el porqué de tu sarcasmo, por si acaso, uso delphi 7.
No es sarcasmo
Digo que no somos adivinos porque dices que tan solo puedes traspasar una cantidad determinada de registros, pues necesitamos ver el código fuente que estás usando y la estructura de la base de datos destino.
Responder Con Cita
  #8  
Antiguo 26-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No es sarcasmo
Digo que no somos adivinos porque dices que tan solo puedes traspasar una cantidad determinada de registros, pues necesitamos ver el código fuente que estás usando y la estructura de la base de datos destino.
El migrado no lo hice a través de delphi, lo hice desde el mismo SQL Server importando el fichero de base de datos Access.

En su defecto, si hay alguna forma en Delphi, de buscar dentro del fichero txt y Seleccionar la información necesitada, seria un éxito.
Responder Con Cita
  #9  
Antiguo 26-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por feliz-58 Ver Mensaje
El migrado no lo hice a través de delphi, lo hice desde el mismo SQL Server importando el fichero de base de datos Access.
En su defecto, si hay alguna forma en Delphi, de buscar dentro del fichero txt y Seleccionar la información necesitada, seria un éxito.
Lo tienes fácil si los campos están separados por un carácter |
Responder Con Cita
  #10  
Antiguo 27-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Lo tienes fácil si los campos están separados por un carácter |
He estado buscando, pero solo he visto lecturas de TXT y comprobar si existen palabras...
Responder Con Cita
  #11  
Antiguo 27-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues eso es, un fichero TXT y encontrar palabras, en este caso una palabra de longitud 1.
Ya sabes, abres el TextFile y la conexión a la BD.
Código:
 Lees línea a línea hasta eof del fichero.
   Primer campo hasta el primer |
   Segundo campo hasta el segundo |
   Saltas un |
   Tercer campo hasta el siguiente |
   Guardas en la BD los campos
Finalmente, cierras el fichero.
Y listo.
Responder Con Cita
  #12  
Antiguo 28-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Has conseguido hacerlo?
¿Necesitas alguna ayuda?
Responder Con Cita
  #13  
Antiguo 28-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pues eso es, un fichero TXT y encontrar palabras, en este caso una palabra de longitud 1.
Ya sabes, abres el TextFile y la conexión a la BD.
Código:
 Lees línea a línea hasta eof del fichero.
   Primer campo hasta el primer |
   Segundo campo hasta el segundo |
   Saltas un |
   Tercer campo hasta el siguiente |
   Guardas en la BD los campos
Finalmente, cierras el fichero.
Y listo.
Hasta ahora buscando solo tengo esto, que es para leer caracter por caracter, pero no se como hacer que haga lo que quiero.

Código Delphi [-]
var
Lista: TStringList;
cadena ,Registro,cadena2:string;
I, k, j: Integer;
begin
  Lista:= TStringList.Create;
  try
   Lista.LoadFromFile('c:\RNC.txt');
   for I := 0 to Lista.Count - 1 do
   begin
    cadena:= Lista.Strings[i];
    k:=Length(cadena);
    for j := 0 to k do
     begin
     cadena2:=Copy(cadena,j,1);
     if cadena2='|' then
      begin
       ShowMessage(Registro);
       Registro:='';
      end
     
      else
       begin
       Registro:=Registro + cadena2;
       end
 
    end;
 
   end;
  
  finally
    Lista.Free;
 end;

end;

Si supiera como hacerlo no estaría aquí...
Mi fuerte es la reparación de laptops, Lcd, plasmas, y alguna que otra cosa dentro de la electronica, no la elaboración de código, la elaboración de código lo hago porque me gusta aprender programación.
Responder Con Cita
  #14  
Antiguo 28-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Crea un proyecto nuevo.
Añade un botón, 3 labels y un memo, por ejemplo.
En el click del botón pega esto:
Código Delphi [-]
procedure TForm1.bt1Click(Sender: TObject);
const
  crlf = chr(13)+chr(10);
var
  F : TextFile;
  cLin : string;
  iPos : Integer;
  cCampo1, cCampo2, cCampo3 : string;
begin
  // Aquí deberías conectar con tu base de datos y preparar el insert, etc.
  //
  // Ahora empezamos a leer el fichero línea a línea y vamos insertando en la BD.
  AssignFile(F,'c:\DGII_RNC.TXT');
  Reset(F);
  ReadLn(F,cLin);
  while not eof(F) do
  begin
    // primer dato, hasta el primer |
    iPos := Pos('|',cLin);
    cCampo1 := Copy(cLin,0,iPos-1);
    // Cortamos de la línea el primer dato que hemos usado
    cLin := copy(clin,iPos+1,length(cLin));
    // leemos hasta el siguiente |
    iPos := Pos('|',cLin);
    cCampo2 := Copy(cLin,0,iPos-1);
    // Cortamos de la línea ese dato que hemos usado
    cLin := copy(clin,iPos+1,length(cLin));
    // buscamos el siguiente |
    iPos := Pos('|',cLin);
    // Cortamos de la línea porque no nos sirve
    cLin := copy(clin,iPos+1,length(cLin));
    // buscamos el siguiente |
    iPos := Pos('|',cLin);
    cCampo3 := Copy(cLin,0,iPos-1);
    // lo mostramos en pantalla, si queremos
    lb1.Caption := ccampo1;
    lb2.Caption := ccampo2;
    lb3.Caption := ccampo3;
    // lo añado a un memo, tú deberías guardar los datos en tu base de datos
    mmo1.Lines.Add(ccampo1+crlf+ccampo2+crlf+ccampo3+crlf);
    // y pasamos a leer la siguiente línea
    ReadLn(F,cLin);
  end;
  CloseFile(F);
end;
Los labels los he nombrado: lb1, lb2 y lb3
El botón lo he nombrado: bt1
El memo lo he nombrado: mmo1

Última edición por Casimiro Notevi fecha: 28-12-2018 a las 11:49:22.
Responder Con Cita
  #15  
Antiguo 29-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Wow, funciona excelente Maestro, Gracias por compartir, que delphi usas?

Última edición por Casimiro Notevi fecha: 29-12-2018 a las 11:00:19.
Responder Con Cita
  #16  
Antiguo 29-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es un delphi 2007, pero es un código estandar, funcionará en todos los delphi.
Responder Con Cita
  #17  
Antiguo 29-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Es un delphi 2007, pero es un código estandar, funcionará en todos los delphi.
No lo pregunto por el código, una vez tenia un delphi que era el 2007 pero una versión mas "didactica", cuando comenzabas a escribir código te salia como una ayuda predictiva. y me acorde de ellos porque en esa versión los componentes cuando los ponías en el formulario aparecían con otro nombre, en la versión normal salen como: Label1, en esa que te menciono salen lb1.

Referente al código, ya hice la importación, y le agregue dos campos mas, en total, se importaron 3,203,126
Responder Con Cita
  #18  
Antiguo 29-12-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo del renombrado es porque lo tengo configurado así con el asistente cnpack instalado.
Responder Con Cita
  #19  
Antiguo 29-12-2018
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Lo del renombrado es porque lo tengo configurado así con el asistente cnpack instalado.
Ya lo instale, lo que mencione era algo parecido, gracias.
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
Migrar de ZIP -> RAR ANG4L Varios 5 21-02-2007 16:52:26
Arreglo de Registros, con arreglos de Registros(Dinamico) PiornoCKA&G Varios 4 05-01-2007 08:53:30
por que duplicidad de registros con clientdataset sin ingresar registros ...mysql Arturo MySQL 3 05-09-2006 18:39:37
Como puedo Migrar Registros con INSERT? JELIRM SQL 3 05-07-2005 22:25:36
¿Como puedo Migrar Registros con INSERT? JELIRM SQL 1 05-07-2005 00:44:43


La franja horaria es GMT +2. Ahora son las 23:01:28.


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