Ir al contenido


Foto

leer un archivo de texto delimitado por | e insertar en una tabla en sql


  • Por favor identifícate para responder
26 respuestas en este tema

#21 ags88

ags88

    Member

  • Miembros
  • PipPip
  • 19 mensajes

Escrito 11 julio 2013 - 09:49

este mensaje me muestra
access violation at adress 00404B98 in module project.exe. write of adress 00000000
  • 0

#22 ags88

ags88

    Member

  • Miembros
  • PipPip
  • 19 mensajes

Escrito 11 julio 2013 - 09:51

este mensaje me muestra
access violation at adress 00404B98 in module project.exe. write of adress 00000000
  • 0

#23 ags88

ags88

    Member

  • Miembros
  • PipPip
  • 19 mensajes

Escrito 11 julio 2013 - 11:51

mensaje de error (La aplicacion utiliza un valor de tipo no valido)

begin
              Close;
              SQL.Add('insert into ejemplo1(idsuc,id,nombre,tel)values(:idsuc,:id,:nombre,:tel)');

              ADOQuery1.Parameters.ParamByName('idsuc').Value:=Datos[0];
              ADOQuery1.Parameters.ParamByName('id').Value:=Datos[1];
              ADOQuery1.Parameters.ParamByName('nombre').Value:=Datos[2];
              ADOQuery1.Parameters.ParamByName('tel').Value:=Datos[3];


              ExecSQL;



            end;

  • 0

#24 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 11 julio 2013 - 07:46

mensaje de error (La aplicacion utiliza un valor de tipo no valido)

begin
              Close;
              SQL.Add('insert into ejemplo1(idsuc,id,nombre,tel)values(:idsuc,:id,:nombre,:tel)');

              ADOQuery1.Parameters.ParamByName('idsuc').Value:=Datos[0];
              ADOQuery1.Parameters.ParamByName('id').Value:=Datos[1];
              ADOQuery1.Parameters.ParamByName('nombre').Value:=Datos[2];
              ADOQuery1.Parameters.ParamByName('tel').Value:=Datos[3];


              ExecSQL;



            end;


Amigo, llevo pocos días con Delphi, pero ese error (creo) es porque no le estas especificando el tipo del valor del parametro. Por ejemplo:


delphi
  1. { Insertar en un campo string, un string }
  2. ADOQuery1.Parameters.ParamByName('paramString').AsString := unString
  3. { Insertar en un campo integer, un integer }
  4. ADOQuery1.Parameters.ParamByName('paramInt').AsInteger:= unInteger



Ojo, nunca use Ado, he usado Interbase y dbExpress. En estos últimos es como te comento arriba.
Fijate !. Saludos.
  • 0

#25 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 11 julio 2013 - 08:31

Cuando se trabaja con ADO y parámetros o el paso de datos a los campos se deben hacer dos cosas:
1) Indicarle el tipo de dato esperado, y
2) Pasar el dato propiamente

Esto se hace como bien han indicado los compañeros:



delphi
  1. ComponenteADOUtilizado.Paramaters.ParamByName(NombreParametro).DataType := ftXXX;
  2. ComponenteADOUtilizado.Paramaters.ParamByName(NombreParametro).Value := DatoAPasar;



Ahora bien, el error Access Violation generalmente se presenta cuando se intenta hacer uso de un objeto liberado o no instanciado. Es posible que el componente ADO sobre cual intentas hacer uso lo hayas liberado previamente.
De todas formas va a requerir un examen minucioso porque justamente el error indica que se está intentando hacer uso de una memoria no reservada, y si no es el componente ADO es posible que se trate de algún otro.

¿Que pasos o procesos realizas justo antes de ejecutar esto? Cuanto más nos puedas decir al respecto más fácil será hallar el problema real y proponerte la solución.

Saludos,
Saludos,
  • 0

#26 ags88

ags88

    Member

  • Miembros
  • PipPip
  • 19 mensajes

Escrito 13 julio 2013 - 09:56

Hola no habia podido responder pero ya logre insertar mis datos leidos desde un txt solo cambie el donde ago el insert fuera de donde leo la primer linea y me lo inserta perfecto el unico detalle es que si quiero leer mas lineas solo una me inserta, pero ya pude lograr mi objetivo, muchas gracias a todos, saludos.
  • 0

#27 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 13 julio 2013 - 01:19

Hola ags88,
No estaría demás que compartieras con nosostros la solución a la que llegaste. Podría ser de utilidad para otros con igual o similares problemas.

Saludos,
  • 0




IP.Board spam blocked by CleanTalk.