Página 1 de 1

ACCESO A BASE DE DATOS DE OPEN OFFICE

Publicado: 19 Feb 2009, 11:28
por quinux
¡Hola a todos!

Continuo usando autoit para facilitarme la vida laboral. Ahora me encuentro con el siguiente problema. Os muestro primero el código:

Código: Seleccionar todo

#include <SQLite.au3>
#include <SQLite.dll.au3>

Local $hQuery,$aRow

_SQLite_Startup ()
If @error > 0 Then
	MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
	Exit - 1
EndIf
ConsoleWrite("_SQLite_LibVersion=" &_SQLite_LibVersion() & @CR)
$handle_bbdd = _SQLite_Open ("C:\yo\programas\gespro\gespro.odb") ; Open a :memory: database
If @error > 0 Then
	MsgBox(16, "SQLite Error", "Can't Load Database!")
	Exit - 1
EndIf

MsgBox(0,"BASE DE DATOS ABIERTA",$handle_bbdd)

$d = _SQLite_Exec($handle_bbdd,"Select * From " & "T_MAILS;","_cb") ; _cb Will be called for each row


Func _cb($aRow)
	For $s In $aRow
		ConsoleWrite($s & @TAB)
	Next
	ConsoleWrite(@LF)
	; Return $SQLITE_ABORT ; Would Abort the process and trigger an @error in _SQLite_Exec()
EndFunc

_SQLite_Close ()
_SQLite_Shutdown ()
Tras navegar y ver algunas cosas pensé que usando la SQLITE podría hacer una simple consulta de una de las tablas de mi base de datos. El script comienza abriendo la base de datos de la cual le doy la ruta. La función, supuestamente, me devuelve un handle correcto. Posteriormente pruebo a realizar una simple select y el script me devuelve el siguiente error:


! SQLite.au3 Error
--> Function: _SQLite_GetTable2d or _SQLite_QuerySingleRow or _SQLite_Exec
--> Query: Select * From T_MAILS;
--> Error: file is encrypted or is not a database

Mi pregunta obviamente no es qué ocurre (se algo de inglés) sino si alguien ha intentado acceder a una base de datos de openoffice usando autoit.

SALUDOS

Re: ACCESO A BASE DE DATOS DE OPEN OFFICE

Publicado: 19 Feb 2009, 16:10
por BasicOs
Hola,
has probado antes con una tabla igual con el formato de sqlite? Luego puedes probar con la de openoffice a ver si es compatible.
Salu2:)

P.D.:¿Has probado con mysql? va muy bien, aunque hay instalar el "servicio mysql", pero lo puedes automatizar también.