Вверх ↑
Ответов: 537
Рейтинг: 14
#1: 2018-12-24 19:55:53 ЛС | профиль | цитата
Тут вот в чем дело. Если например открыть в хайясме файл .xlsx с помощью sqlite3.dll то очень быстро открывается, но опять есть "но". Делаю парсер у меня на компе все отлично открывается, а на win 10, совсем не работает пока не переустановлю программу excel, вот драйвера все есть, а не работает совсем. В общем косяки в двух случаях. Нужна хорошая система, например отдельно открыть файл в хайясме, а потом другая система сохранить с длинным текстом без обрезки в 255 символов. 255 символов это я как понял проблема файлов .xls а как с помощью sqlite3.dll сохранить в .xlsx?
Вот открытие файла и то бывает runtime error, один файл нормально открывает, а другой runtime error и прога закрывается. На этом компе win7 32, процессор современный и оператива 4 Гб

Add(MainForm,2953706,21,105)
{
Width=659
Height=610
}
Add(ChildPanel,6304782,280,105)
{
}
BEGIN_SDK
Add(EditMulti,13873045,21,21)
{
EventCount=2
WorkCount=1
Width=664
Height=417
link(doWork1,2108518:doEvent1,[(37,27)(37,202)])
}
Add(Panel,14000364,63,28)
{
Width=643
Height=73
Align=2
Visible=1
Layout="parent.vert"
}
Add(FormatStr,15762674,385,119)
{
Mask="Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};\r\nDriverID=22;\r\nDBQ=%1;\r\nDefaultDir=%2;\r\nFirstRowWhasNames=1;\r\nReadOnly=true;\r\nScanRows=0;"
Point(FString)
link(Str2,16353759:Var2,[])
AddHint(44,-31,187,104,Mask)
}
Add(OLEdb,3042347,245,266)
{
Point(onError)
link(onConnect,15799951:doCreate,[])
link(Driver,15762674:FString,[(251,186)(391,186)])
link(onError,9853256:doWork2,[(291,279)(291,307)])
}
Add(OLEdb_Session,15799951,308,266)
{
Point(onError)
link(onError,9853256:doWork1,[(352,279)])
}
Add(FormatStr,5978579,490,273)
{
Mask="SELECT * FROM "%2"."%1$A1:BH" "%1$";"
Point(FString)
link(onFString,6949883:doQuery,[(538,279)(538,316)(296,316)(296,377)])
link(Str2,16353759:Var3,[(503,103)])
AddHint(-15,-62,191,26,Mask)
}
Add(VBJScript,345803,385,210)
{
@Hint=#16:Query SQL Server|
WorkPoints=#6:doOpen|7:doSheet|7:doClose|
EventPoints=#8:onSheets|6:onOpen|
Script=#9:Dim strIn|5:Dim i|5:Dim j|12:Dim objExcel|11:Dim onExcel|0:|22:Sub doWork(Data,Index)|18: Select Case Index|15: Case "doOpen"|52: Set objExcel = CreateObject("Excel.Application")|52: Set objWorkbook = objExcel.Workbooks.Open (Data)|71: j = objWorkbook.Sheets.Count 'Узнаём количество листов|88: For i=1 To j 'Листы начинаются не с "0", а с "1" |86: strIn = objWorkbook.Sheets(i).Name 'Узнаём имя очередного листа |65: sys.onSheets strIn 'Выводим имя наружу|9: Next|17: sys.onOpen 1 |94: 'Case "doSheet" 'На вход подаётся строка, содержащая имя Листа|33: 'objExcel.Sheets(Data).Select|38: 'objExcel.ActiveSheet.Cells.Select|43: 'objExcel.Selection.NumberFormat = "@" |39: 'objExcel.ActiveWorkbook.Save() |17: Case "doClose"|17: objExcel.Quit|26: Set objExcel = Nothing|17: sys.onOpen 0 |0:|11: End Select|0:|7:End Sub|
UseName=0
link(onSheets,578465:doData,[])
}
Add(Hub,45852,350,203)
{
OutCount=3
link(onEvent1,15762674:doString,[(374,209)(374,125)])
link(onEvent2,345803:doOpen,[])
link(onEvent3,345803:doClose,[(374,223)(374,230)])
}
Add(Hub,11410566,140,203)
{
OutCount=3
link(onEvent1,45852:doEvent1,[])
link(onEvent2,3042347:doOpen,[(200,216)(200,272)])
link(onEvent3,15734214:doData,[(294,223)(294,279)])
}
Add(LineBreakEx,15642429,371,301)
{
Caption="error"
}
Add(HubEx,9853256,348,301)
{
link(onEvent,15642429:doWork,[])
}
Add(LineBreakEx,8833105,567,21)
{
Caption="error"
Type=1
link(OnEvent,5569768:doWork2,[])
}
Add(EventFromData,578465,434,210)
{
}
Add(Hub,2108518,105,196)
{
link(onEvent1,9780797:doData,[(255,202)(255,62)])
link(onEvent2,11410566:doEvent1,[])
}
Add(EventFromData,9780797,392,56)
{
}
Add(DoData,15734214,434,273)
{
link(onEventData,5978579:doString,[])
link(Data,578465:GetData,[])
}
Add(OLEdb_Query,6949883,308,371)
{
link(onQuery,10195882:doEvent1,[(352,377)(352,363)])
link(onColumns,2369042:doAddCols,[])
link(onError,5569768:doWork3,[(627,391)])
link(dbSession,15799951:dbSession,[])
link(Text,5978579:FString,[(321,320)(496,320)])
}
Add(MST_DB,2369042,413,371)
{
MSTControl="parent.tabl_1"
}
Add(HubEx,5569768,623,21)
{
link(onEvent,13873045:onEvent1,[])
}
Add(GetDataEx,16353759,392,98)
{
link(Data,9780797:GetData,[])
}
Add(Hub,10195882,364,357)
{
OutCount=3
link(onEvent1,9261340:doStopAll,[(396,363)(396,356)])
link(onEvent2,9261340:doTimer,[(396,370)(396,342)])
link(onEvent3,2369042:doAddRow,[])
}
Add(Timer,9261340,413,336)
{
Interval=1500
Enable=1
AutoStop=1
Point(doStopAll)
link(onTimer,13873045:onEvent2,[(565,342)(565,34)])
}
END_SDK
Add(ODialog,1063971,182,105)
{
Filter="Microsoft Excel (.xls,.xlsx)|*.xls;*.xlsx"
Title="Выбрать файл"
FileName=""
Select=1
link(onExecute,11002347:doText,[])
}
Add(MTStrTbl,4101435,77,105)
{
Top=73
Width=604
Height=495
Name="tabl_1"
}
Add(Button,15935873,133,105)
{
Left=5
Top=5
Width=95
Height=40
Font=[MS Sans Serif,10,1,0,1]
Hint="Выберите файл excel для конвертирования"
Caption="Открыть"
link(onClick,1063971:doExecute,[])
}
Add(Edit,11002347,231,105)
{
Left=105
Top=5
Width=430
Text=""
link(onChange,6304782:doWork1,[])
}

карма: 4

0