sql ms-access vbscript blob

sql - Extraer datos de blobs de Access a través de vbscript



ms-access (1)

He tenido suerte escribiendo el valor de Blob en un archivo de transmisión. Prueba esto:

db = "C:/Users/username/databases/employeeID.mdb" TextExportFile = "C:/Users/username/databases/Exp.txt" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") Set mstream = CreateObject("ADODB.Stream") mstream.Type = 1 ''adTypeBinary cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & "Data Source =" & db strSQL = "SELECT IDNumber,Name FROM employeeID " rs.Open strSQL, cn Do Until rs.EOF mstream.Open mstream.Write rs("Name") mstream.SaveToFile rs("IDNumber"), 2 ''adSaveCreateOveWrite mstream.close rs.MoveNext Loop ''Set fs = CreateObject("Scripting.FileSystemObject") ''Set f = fs.CreateTextFile(TextExportFile, True) ''a = rs.GetString ''f.WriteLine a ''f.Close

Así que tengo un vbscript que extrae datos de una base de datos de acceso

Ejemplo:

db = "C:/Users/username/databases/employeeID.mdb" TextExportFile = "C:/Users/username/databases/Exp.txt" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & "Data Source =" & db strSQL = "SELECT IDNumber+'',''+Name FROM employeeID " rs.Open strSQL, cn, 3, 3 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.CreateTextFile(TextExportFile, True) a = rs.GetString f.WriteLine a f.Close

La exportación se ve así:

19199439,person 29034234,john

El problema al que me estoy enfrentando es que cuando cambio el nombre a la columna de Blob, la columna de blob está en blanco. En el acceso solo dice: Long Binary Data

Creo que tiene algo que ver con una cadena de texto frente a una cadena binaria, pero no sé cómo configurarla para recuperar esa información.

La cadena que se encuentra en el campo BLOB es archivos jpg

Mi objetivo final es guiar la extracción de los datos de blobs en cada columna con IDNumber como el nombre del archivo. Si puedo obtener la consulta anterior para exportar el número de ID y luego los datos de blob correspondientes, puedo encargarme del resto.

Abierto a otras ideas, pero necesito poder guiarlo y ejecutarlo desde una base de datos de acceso (desafortunadamente)

(Incluso estoy abierto a la idea de exportarlo desde el acceso al servidor sql si alguien sabe cómo guiarlo. Desde un servidor sql puedo extraer los datos con bastante facilidad, pero esto tiene que ser algo que pueda ejecutar una vez al mes .

Motivo: la base de datos de acceso es para software de identificación con foto y queremos exportar las imágenes para su uso en otro software y así es como el software lo almacena.

De la respuesta suministrada por Suing aquí está mi código final que hace todo shebang. extrae los datos de blobs de la base de datos de acceso, nombra cada campo de blob con el número de Id correspondiente agrega .jpg al final de cada archivo y lo coloca en la carpeta que necesito.

db = "C:/Users/amoore19/databases/employeeID.mdb" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") Set mstream = CreateObject("ADODB.Stream") mstream.Type = 1 ''''adTypeBinary cn.Open "Provider = Microsoft.Jet.OLEDB.4.0; " & "Data Source =" & db strSQL = "SELECT AimsIDNumber,photo FROM employeeID WHERE AimsIDNumber like ''A00%'' and photo is not null" rs.Open strSQL, cn DO WHILE not rs.eof mstream.Open mstream.Write rs("photo") mstream.SaveToFile "C:/images/all/" & rs("AimsIDNumber") & ".jpg", 2 ''''adSaveCreateOveWrite mstream.close rs.movenext Loop