У вас есть пара проблем с вашим кодом:
SELECT
вы ищете значения в текстовых столбцах (TEXT
, VARCHAR
и т. Д.). Для этого необходимо добавить одинарные кавычки в критерии поиска, так как вы хотите указать текстовый литерал. Поэтому WHERE title={}
должно быть WHERE title='{}'
(то же самое относится и к другим параметрам). search(title='test2')
запустит поиск записи, где столбец title
имеет значение 'test2'
или любой из трех других столбцов (author
, year
и isbn
) имеет пустой текст , Если вы решили искать заголовок 'test2'
, это будет работать только в том случае, если ни один из других столбцов не будет когда-либо содержать пустой текст. И даже в этом случае из-за трех OR
операторов в вашем запросе производительность будет низкой. Вместо этого вам следует оценить каждый параметр индивидуально и построить запрос только с непустыми параметрами. Можно использовать DotNetZip от VBScript.
Для распаковки существующего zipfile, перезаписывая любые файлы, которые могут существовать:
WScript.echo("Instantiating a ZipFile object...")
Dim zip
Set zip = CreateObject("Ionic.Zip.ZipFile")
WScript.echo("Initialize (Read)...")
zip.Initialize("C:\Temp\ZipFile-created-from-VBScript.zip")
WScript.echo("setting the password for extraction...")
zip.Password = "This is the Password."
' set the default action for extracting an existing file
' 0 = throw exception
' 1 = overwrite silently
' 2 = don't overwrite (silently)
' 3 = invoke the ExtractProgress event
zip.ExtractExistingFile = 1
WScript.echo("extracting all files...")
Call zip.ExtractAll("extract")
WScript.echo("Disposing...")
zip.Dispose()
WScript.echo("Done.")
Создать новый zipfile:
dim filename
filename = "C:\temp\ZipFile-created-from-VBScript.zip"
WScript.echo("Instantiating a ZipFile object...")
dim zip2
set zip2 = CreateObject("Ionic.Zip.ZipFile")
WScript.echo("using AES256 encryption...")
zip2.Encryption = 3
WScript.echo("setting the password...")
zip2.Password = "This is the Password."
WScript.echo("adding a selection of files...")
zip2.AddSelectedFiles("*.js")
zip2.AddSelectedFiles("*.vbs")
WScript.echo("setting the save name...")
zip2.Name = filename
WScript.echo("Saving...")
zip2.Save()
WScript.echo("Disposing...")
zip2.Dispose()
WScript.echo("Done.")
http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_23022290.html
Проверьте свой временный каталог. Если у Вас есть 99 папок, связанных с этим процессом разархивации, попытайтесь удалить их.
Я добавил следующий код к началу моего разархивировать процедуру для удаления этих каталогов, прежде чем я разархивирую:
For i = 1 To 99
If aqFileSystem.Exists(GetAppPath("Local Settings", "") & "\Temp\Temporary Directory " & i & " for DialogState.zip") = True Then
result = aqFileSystem.ChangeAttributes(GetAppPath("Local Settings", "") & "\Temp\Temporary Directory " & i & " for DialogState.zip", 1 OR 2, aqFileSystem.fattrFree)
Call DelFolder(GetAppPath("Local Settings", "") & "\Temp\Temporary Directory " & i & " for DialogState.zip")
Else
Exit For
End If
Next