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)
Datasource := 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.