Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jrhomer

#71
OK...Connection String:
//set the database engine (which version of access to create the file for)
//i.e. Type 4 -> access 95 & 97; Type 5 = access 2000 - current
DataSource := 'Provider=Microsoft.Jet.OLEDB.4.0' + ';Data Source=' +
  dbName + ';Jet OLEDB:Engine Type=5';

http://www.delphipages.com/threads/thread.cfm?ID=165855&G=165855

he cambiado el :

Jet OLEDB:Engine Type=4, por
Jet OLEDB:Engine Type=5

por ahora funciona, espero que en las próximas sentencias siga funcionando.

un saludo a todos.

#72
 Hola foro;

tengo una duda que me trae algo liado os explico la situación.

Hasta ahora he estado trabajando siempre con Access97, ya que para lo que he usado la base de datos me ha funcionado bien (y si hace lo que quiero y se hacerlo... ¿para que iba a cambiar?) pero ahora me "obligan" a usar algo que esté más al día, de modo que me han dicho que use Access2003 o me vaya a SQL.

El caso es que quiero seguir usando Access y de modo que me he puesto a actualizar mis conexiones. La gran mayoría de las conexión se siguen realizando correctamente, pero otras han tenido que sufrir algunos cambios, por ejemplo:

con Access97 usaba:

Set CX = New ADODB.Connection

    With CX
         .Open ("Provider=Microsoft.Jet.OLEDB.3.51;" & _
            "Data Source=" & CONECTAR.cBaseDatos & ";" & _
            "Jet OLEDB:Database Password=pepe")
    End With

(no creais q l pasword en realidad es "pepe", jeje)

y he tenido que actualizarlo a:

    With CX
         .Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" & CONECTAR.cBaseDatos & ";" & _
            "Jet OLEDB:Database Password=pepe")
    End With

yo tenia entendido que el Provider=Microsoft.Jet.OLEDB.4.0; era para la versión 2000, pero estaba confundido y es 3.51 para las anteriores a Access97 y 4.0 para las siguientes.

Este cambio ha funcionado (por ahora) con las conexión que me han ido surgiendo, según voy revisando el código.

Pero al llegar a la sección donde compacto la base de datos:

Set je = New JRO.JetEngine

    je.CompactDatabase _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & CONECTAR.cBaseDatos & ";" & _
        "Jet OLEDB:Engine Type=4;" & _
        "Jet OLEDB:Database Password=pepe", _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & sDBTmp & ";" & _
        "Jet OLEDB:Engine Type=4;" & _
        "Jet OLEDB:Database Password=pepe"

Este mismo código lo usaba también cuando usaba Access97, no entendia muy bien lo del 4.0 en este caso... pero así lo leí y así lo he usado y no me había dado problemas hasta ahora.

Hay algo que tengo mal, pero no se el que y lo que es peor... no se como solucionarlo.

El error que salta al ejecutarse esta línea de código es el siguiente:

Error '-2147467259 (800044005)' en tiempo de ejecución:

No se puede realizar esta operación;  las características de esta versión no están disponibles para bases de datos con formatos antiguos.

No lo entiendo del todo... ya que cuando dice "bases de datos con formatos antiguos..." exactamente lo que he "modernizado" ha sido la base de datos.

Supongo que algo del controlador está mal...

Espero que alguien me pueda echar una mano para poder solucionar esto.

muchas gracias como siempre.
#73
Cita de: M@rT1n en 11 Enero 2006, 22:01 PM
Que tal si tratan de conectar con un socket al servidor y obtener el archivo?
Si el apache se los da, existe. Sino, les tirara un 404. Y si no se conecta tampoco existe.

Saludos
no consigo cortar la descarga (antes de iniciarse) siempre q el archivo (mdb, en mi caso) existe, lo intenta descargar.

Tienes un ejemplo para guiarme?


un saludo.
#74
Cita de: M@rT1n en 11 Enero 2006, 22:01 PM
Que tal si tratan de conectar con un socket al servidor y obtener el archivo?
Si el apache se los da, existe. Sino, les tirara un 404. Y si no se conecta tampoco existe.

Saludos
no me interesa obtener el archivo, solo interesa conocer si existe o no. Esa es la duda que he planteado y que no hemos podido solucionar aun.
#75
Cita de: KiZaR en 11 Enero 2006, 18:57 PM
Digamos k la api par abrir uan pagina web te devuelve 0 si la pagina no existe, el caso es k cuando en un servidor no existe un archivo te redireciona a la pagina de error 404 de el sitio entonces la api te dice k si k existe.

Salu2
a q API t refieres? a IsValidURL ? o a cual... lo digo para ver si podemos controlar lo del 0 q devuelve.
#76
Cita de: KiZaR en 11 Enero 2006, 17:23 PM
Digamos k la api IsValidURL ace una comprovacion muy simple de la url yo juraria k solo se fija en los puntos k tiene la url y si empiza por http:// .

A mi tambien me interesa lo de saber si un archivo existe.

Salu2
estoy probando con WebBrowser.... para ver si puedo cojer un error con el evento NavigateError... pero aun estoy probando, puede ser una "solución".

si sacais alguna solución no dudeis en postearla.
#77
he probado con :


Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
    "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
    ByVal szFileName As String, ByVal dwReserved As Long, _
    ByVal lpfnCB As Long) As Long
Public Function DownloadFile(URL As String, _
    LocalFilename As String) As Boolean
    Dim lngRetVal As Long
    lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
    If lngRetVal = 0 Then DownloadFile = True
End Function[/P]
[P]
Sub Probando()
If DownloadFile("[URL=http://www.loquesea/archivo2.pdf]www.loquesea/archivo2.pdf[/URL]", _
     "C:\mifichero.pdf") = True Then
  MsgBox "Descarga OK"
Else
  MsgBox "Error en la descarga"
End If
End Sub


pero no me interesa que se descargue el archivo,... alguien sabe como se puede comprobar sin necesidad de descargar el archivo.

un saludo.
#78
Hola foro.

Necesito saber si un archivo, como por ejemplo www.pepe.com/log/uno.txt, existe.

Mirando el API lo que he visto parecido es la función IsValidURL, pero no obtengo el resultado que necesito, ya que esta funcion me indica si es "correcta" la URL, pero no si existe.

por ejemplo:

http://www.pepe.com/ es una URL correcta
hrrp:/www.pepe.com/ es una URL incorrecta
http://www.pepe.com/log/noExisto.txt es una URL correcta
sin embardo el archivo /log/noExisto.txt no existe...

no se si me he explicado, creo q si.

(aquí la posteo la función IsValidURL por si alguien la necesita)

Private Const S_FALSE = &H1
Private Const S_OK = &H0
'Only implemented as unicode...
Private Declare Function IsValidURL Lib "URLMON.DLL" (ByVal pbc As Long, ByVal szURL As String, ByVal dwReserved As Long) As Long
Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    MsgBox "Is valid URL: " + CStr(IsGoodURL("http://www.allapi.net"))
    MsgBox "Is valid URL: " + CStr(IsGoodURL("hxxp:/www.allapi.uhoh"))
End Sub
Public Function IsGoodURL(ByVal sURL As String) As Boolean
    'The IsValidURL always expects a UNICODE string, but whenever
    'VB calls an API function, it converts the strings to ANSI strings.
    'That's why we're going to use a trick here. Before calling the function,
    'We're going to convert the unicode string to unicode so we get a double
    'unicode string.
    'Before VB calls the API function, it converts our double unicode string
    'to a normal unicode string; exactely what IsValidURL is expecting.
    sURL = StrConv(sURL, vbUnicode)
    'Now call the function
    IsGoodURL = (IsValidURL(ByVal 0&, sURL, 0) = S_OK)
End Function
#79
Muchas gracias por el código Slasher-K

todo OK.
#80
Ahora tengo un problemilla que es que al ejecutar
Retval = Shell("ftp -s:C:\ftp.txt", vbNormalFocus)
pasa un tiempo hasta que baja(/sube) el archivo, pero la ejecución de sentencias sigue y no "para" mientras se está bajando el archivo, conoceis algún modo de controlarlo?

conociendo el tamaño total del archivo y lo que se ha transferido cada 1seg por ejemplo...?

o como se puede controlar eso, para que no intente acceder al MDB sin antes haberse descargado?

un saludo y muchas gracias.