FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TXT to SQL
Posts: 18
Joined: Wed Nov 04, 2009 09:41 AM
TXT to SQL
Posted: Thu Dec 31, 2009 11:10 AM

Hola a todos,

Estoy implementando un m茅todo para pasar informaci贸n de un fichero .txt a una base de datos SQL. El fichero .txt esta formado por ocho campos/columnas (C贸digo, Nombre, Pa铆s...) que al pulsar en un bot贸n de mi aplicaci贸n quiero que se vuelquen en SQL. La conexi贸n la hago v铆a ADO.

Este ser铆a el m茅todo que intento utilizar:

method TXTtoSQL() class TFormPrincipal

LOCAL o
LOCAL oRs
LOCAL a
LOCAL adUseClient
LOCAL adOpenStatic

//Abro la conexi贸n.
WITH OBJECT o := TAdoDatasource():Create()
:cConnect := "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=prueba;Data Source=Servidor"
:Connect()
END

//Recordset.
WITH OBJECT oRs := TSqlQuery():Create(o)
:oDatasource := o
:ncursorlocation := adUseClient
:ncursortype := adOpenStatic
:cSelect := "SELECT * FROM dbo.clientes"
END
oRs:Open()

//Comprueba que la conexi贸n est谩 abierta.
IF !oRs:lOpen
MsgInfo("Error de conexi贸n")
ENDIF

//Hago las inserciones en la BD SQL.
::cFicheroR := Memoread("Info.txt")
FOR ::nLine := 1 TO INT(LEN(::cFicheroR) / 554 ) STEP 1

  ::cLine := SUBSTR(::cFicheroR, (::nLine -1) *554, 554)
  ::cLine = StrTran(::cLine, Chr(10), "") //Borrar tabulaciones.

  Append Blank
  REPLACE cCodCli with SUBSTR(::cLine,1,6)
  REPLACE cNomCli with SUBSTR(::cLine,7,100)
  REPLACE cNomCom with SUBSTR(::cLine,107,100)
  REPLACE cDirCli with SUBSTR(::cLine,207,100)
  REPLACE cPobCli with SUBSTR(::cLine,307,100)
  REPLACE cCodProv with SUBSTR(::cLine,407,4)
  REPLACE cPTLCli with SUBSTR(::cLine,411,10)
  REPLACE cFaxCli with SUBSTR(::cLine,421,10)
  REPLACE cDniCif with SUBSTR(::cLine,438,10)
  REPLACE cContacto with SUBSTR(::cLine,453,10)

NEXT

MsgInfo(Str(oRs:autoin))

return nil

Al pulsar al bot贸n para importar de TXT a SQL me sale este error:

Application

Path and name: C:\Trabajos\Trab\Pruebas\Source\prueba1.exe (32 bits)
Size: 1,518,080 bytes
Time from start: 0 hours 0 mins 4 secs
Error occurred at: 12/31/09, 12:00:27
Error description: Error ADODB.Recordset/16389 E_FAIL: PROPERTIES
Args:
[ 1] = C Update Resync

Stack Calls

Called from: win32ole.prg => TOLEAUTO:PROPERTIES(0)
Called from: xSqlQuery.prg => (b)XSQLQUERY:XSQLQUERY(74)
Called from: => TSQLQUERY:RECORDSETCHGRESYNCTYPE(0)
Called from: xSqlQuery.prg => TSQLQUERY:OPEN(302)
Called from: prueba1.prg => TFORMPRINCIPAL:TXTTOSQL(256)
Called from: prueba1.prg => (b)TFORMPRINCIPAL:NEW(109)
Called from: BUTTON.PRG => TBUTTON:CLICK(0)
Called from: CONTROL.PRG => TBUTTON:HANDLEEVENT(0)
Called from: WINDOW.PRG => _FWH(0)
Called from: => SENDMESSAGE(0)
Called from: DIALOG.PRG => TDIALOG:COMMAND(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
Called from: => DIALOGBOX(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: prueba1.prg => TFORMPRINCIPAL:SHOW(131)
Called from: prueba1.prg => MAIN(16)

Alguna idea para resolverlo...

Gracias de antemano.

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: TXT to SQL
Posted: Thu Dec 31, 2009 04:18 PM

Diego:

Todo parece indicar que el problema esta en las caracteristicas del record set, sin embargo, me pregunto, para que quieres crear el record set, pienso que con crear y abrir la conexi贸n y actualizar la tabla directamente con un INSERT te ser铆a suficiente, cierto ?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 199
Joined: Fri Apr 18, 2008 04:21 PM
Re: TXT to SQL
Posted: Thu Jan 07, 2010 09:28 PM

Yo haria un texto delimitado por comas, y luego una instruccion de SQL que se llama LOAD DATA LOCAL INFILE

Atentamente,
Julio Ponce

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: TXT to SQL
Posted: Fri Jan 08, 2010 02:15 AM

jponce,

Lo que indicas es posible si se usa de manera LOCALHOST, en una red es imposible, por lo menos en versiones menores a la 6.0

saludos

William, Morales

Saludos



m茅xico.sureste
Posts: 199
Joined: Fri Apr 18, 2008 04:21 PM
Re: TXT to SQL
Posted: Fri Jan 08, 2010 02:26 PM

No necesariamente tiene que ser solo localhost yo lo he hecho desde mi compu hacia el servidor de la siguiente forma

genero mi archivo de texto delimitado por comas o "|"

LOAD DATA LOCAL INFILE 'c:\ruta\fichero.txt' INTO TABLE tabla FIELDS
TERMINATED BY ',' o '|'

y de esta forma puedo hacerlo desde mi compu hacia el servidor, inclusive lo he hecho desde afuera de la oficina con una ip Publica.

esto me ha servido para trasladar datos de una base de datos a otra.

Espero les sirva.

Atentamente,
Julio Ponce

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: TXT to SQL
Posted: Sat Jan 16, 2010 07:52 PM

Otro caso m谩s. no hay respuesta del colega que pregunt贸 :?

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion