Вверх ↑
Этот топик читают: Гость
Ответов: 113
Рейтинг: 1
#1: 2020-08-06 18:01:45 ЛС | профиль | цитата
всем привет, подскажите как можно оптимизировать схему. Хочу сделать такой вариант работы с файлами: в папку добавляем фотографии, программа ищет файлы и записывает в базу данных, если добавились новые , то они также записываются в базу данных. В случае удаления файла ему присваивается значение - скрытый (Hide="1"), если вдруг его удалил в корзину и вернут обратно, то снова видимый (Hide="1").
сам процесс определения наличия файла и присвоения ему значения очень долгий - UPDATE file SET Hide = "1" WHERE Name = "%1" или UPDATE file SET Hide = "0" WHERE Name = "%1" . есть ли варианты как это оптимизировать ?

Add(FormatStr,2590690,1189,462)
{
Mask="UPDATE file SET Hide = "1" WHERE Name = "%1";"
link(onFString,14437340:doWork2,[])
link(Str1,5032413:Var2,[])
}
Add(MainForm,2953706,35,49)
{
Width=418
Height=506
BorderStyle=3
Position=1
Point(Handle)
Point(onClose)
link(onCreate,5558056:doEvent1,[])
link(onClose,1827425:In,[])
}
Add(Button,13228053,126,119)
{
Left=15
Top=10
link(onClick,1427945:doEvent1,[])
}
Add(MTStrTbl,3474883,1337,168)
{
Left=15
Top=45
Width=385
Height=420
Name="tbl"
Columns=#1:1|1:2|1:3|1:4|1:5|
}
Add(MST_RowAction,1415183,1281,168)
{
MSTControl="tbl"
}
Add(Ini,6101227,399,63)
{
FileName="Settings.ini"
Section="Section1"
Key="Startdir"
Type=1
link(onResult,3910624:doValue,[])
}
Add(Browse,1417443,301,133)
{
Edit=1
NewDirButton=1
Point(doDefaultFolder)
link(onBrowse,13505115:doEvent1,[])
}
Add(Hub,13505115,350,133)
{
OutCount=3
link(onEvent1,6101227:doWrite,[(382,139)(382,76)])
link(onEvent3,10359188:doSearch,[])
}
Add(Hub,1427945,252,119)
{
OutCount=3
link(onEvent1,10137780:doWork3,[(284,125)])
link(onEvent2,14731764:doClear,[(290,132)(290,97)])
link(onEvent3,1417443:doBrowse,[])
}
Add(HubEx,10137780,280,63)
{
link(onEvent,6101227:doRead,[])
}
Add(FileSearch,10359188,399,147)
{
link(onSearch,8916523:doEvent1,[(537,153)(537,69)])
link(onEndSearch,6239381:doTimer,[(536,160)(536,265)])
link(Dir,9381493:Var,[])
}
Add(GlobalVar,3910624,448,63)
{
Name="startdir"
}
Add(DoData,2820051,210,140)
{
link(onEventData,1417443:doDefaultFolder,[])
link(Data,6053331:Var,[])
}
Add(GlobalVar,6053331,210,98)
{
Name="startdir"
}
Add(Hub,5558056,140,63)
{
OutCount=3
link(onEvent1,10137780:doWork2,[])
link(onEvent2,2820051:doData,[(182,76)(182,146)])
link(onEvent3,5631628:doEvent1,[(168,83)(168,114)(65,114)(65,258)])
}
Add(GlobalVar,9381493,406,112)
{
Name="startdir"
}
Add(If_else,14635017,595,126)
{
Op2=String()
link(onFalse,8426976:doCompare,[])
link(Op1,3028391:Var2,[])
}
Add(StrMask,8426976,644,133)
{
Mask="*.jpg"
link(onTrue,8648575:doCompare,[])
link(Str,211618:Var2,[])
AddHint(-56,34,36,13,Mask)
}
Add(StrMask,8648575,693,140)
{
Mask="*.JPG"
link(onTrue,8164732:doString,[])
link(Str,947588:Var2,[])
AddHint(-49,31,42,13,Mask)
}
Add(FilePartElm,16044689,595,63)
{
Point(Part)
}
Add(Hub,8916523,560,63)
{
OutCount=5
link(onEvent1,16044689:doPart,[])
link(onEvent2,12436035:doReplace,[])
link(onEvent3,5269118:doRead,[])
link(onEvent4,14635017:doCompare,[(584,90)(584,132)])
}
Add(FilePartElm,9790652,700,70)
{
Mode=0
link(onPart,3559165:doTrim,[])
}
Add(Trim,3559165,749,70)
{
Char="\"
Point(Result)
}
Add(GetDataEx,3028391,595,105)
{
link(Data,16044689:Part,[])
}
Add(GetDataEx,211618,644,105)
{
Angle=3
link(Data,3028391:Var3,[])
}
Add(FormatStr,8164732,742,147)
{
DataCount=4
Mask="SELECT\r\ncase when count (*)=0 then 'NotFound'\r\n else max(Name) end\r\n||';'\r\n||'%1'\r\n||';'\r\n||'%2'\r\n||';'\r\n||'%3'\r\n||';'\r\n||'%4'\r\n||';'\r\n||'Stat'\r\n||';'\r\n||'Hide'\r\nFROM file\r\nWHERE Name =("%1");"
link(onFString,13892799:doQuery,[])
link(Str1,947588:Var3,[(748,110)])
link(Str2,3559165:Result,[])
link(Str3,5269118:DateModify,[(762,128)(832,128)])
link(Str4,5269118:FileSize,[(769,131)(839,131)])
}
Add(GetDataEx,947588,693,105)
{
Angle=3
link(Data,211618:Var3,[])
}
Add(FileAttributes,5269118,812,77)
{
Format="DMY_hm"
Point(FileSize)
}
Add(DS_SQLite,5372330,546,518)
{
Name="database"
Point(onError)
link(FileName,11246006:Var3,[(552,502)])
link(onError,2733831:doValue,[])
}
Add(FileTools,11216278,392,511)
{
link(onEnd,8852679:doEvent,[])
link(FileName,11246006:Var2,[])
}
Add(VisualStrings,15496986,399,399)
{
Lines=#12:Database.wdb|
Width=81
}
Add(DSC_Exec,10834091,546,462)
{
DSManager="database"
link(onError,2378110:doValue,[])
link(SQL,1747880:Text,[])
}
Add(IndexToChanel,8852679,448,511)
{
link(onEvent1,5617543:doEvent1,[(492,517)(492,461)])
link(onEvent2,16007518:doWork2,[])
}
Add(Hub,5617543,504,455)
{
OutCount=3
link(onEvent1,16007518:doWork1,[(529,461)])
link(onEvent2,10834091:doExec,[])
}
Add(Dir,15926344,315,231)
{
Point(MyDocumentDir)
}
Add(StrList,13928195,126,350)
{
Strings=#6:%3;Dir|20:%3\Database;Database|16:%3\Backup;Backup|16:%3\Export;Export|
}
Add(ArrayEnum,10030415,140,434)
{
link(onItem,15168602:doSplit,[(193,440)(193,321)])
link(onEndEnum,1763487:doEvent1,[])
link(Array,13928195:Array,[])
}
Add(DirTools,4196025,77,497)
{
Point(doExists)
link(onOK,14122577:doEvent,[])
}
Add(FormatStr,5566409,308,315)
{
DataCount=3
Mask="%2%1"
Point(FString)
link(onFString,4196025:doExists,[(353,321)(353,422)(65,422)(65,524)])
link(Str2,15926344:CurrentDir,[])
link(Str3,16166707:Part,[(328,299)(167,299)])
}
Add(IndexToChanel,14122577,140,497)
{
Point(Data)
link(onEvent1,9220000:doEvent1,[])
link(Data,14465055:Var1,[(146,474)])
}
Add(Registry,2432250,238,490)
{
HKey=1
Value="DataBase"
link(Data,14465055:Var2,[])
link(Key,5729389:Var2,[])
link(Value,15168602:RemaindStr,[])
}
Add(MultiStrData,15168602,252,315)
{
Count=1
link(onPart1,5566409:doString,[])
}
Add(Hub,9220000,196,497)
{
link(onEvent1,2432250:doWrite,[])
link(onEvent2,15926344:doDir,[(229,510)(229,237)])
}
Add(WinTools,10387803,154,203)
{
Point(FileName)
link(Handle,2953706:Handle,[(160,187)(41,187)])
}
Add(FilePartElm,16166707,161,252)
{
Mode=2
Point(Part)
link(onPart,818685:doString,[])
link(FileName,10387803:FileName,[])
}
Add(Hub,5631628,77,252)
{
InCount=2
OutCount=4
link(onEvent1,16166707:doPart,[])
link(onEvent2,10030415:doEnum,[(101,265)(101,440)])
}
Add(FormatStr,818685,245,252)
{
Mask="Software\%1"
Point(FString)
}
Add(Registry,2826727,329,441)
{
HKey=1
Value="DataBase"
link(onRead,5413130:doString,[])
link(Key,5729389:Var3,[(342,397)])
}
Add(FormatStr,5413130,392,441)
{
Mask="%1\%2"
Point(FString)
link(Str2,15496986:Text,[])
}
Add(Hub,1763487,196,441)
{
link(onEvent1,2826727:doRead,[])
link(onEvent2,11216278:doFileExists,[(295,454)(295,538)])
}
Add(HubEx,16007518,525,518)
{
link(onEvent,5372330:doOpen,[])
}
Add(StrList,1747880,546,392)
{
Strings=#19:CREATE TABLE file (|37:id INTEGER PRIMARY KEY AUTOINCREMENT,|17: Name TEXT NULL,|17: Path TEXT NULL,|18: Date1 TEXT NULL,|18: Size TEXT NULL,|17: Stat TEXT NULL,|19: Hide INTEGER NULL|2:);|
}
Add(LineBreak,8095610,448,553)
{
link(Out,5372330:doClose,[(512,559)(512,531)])
Primary=[1827425,-357,-483]
}
Add(Replace,12436035,644,70)
{
link(onReplace,9790652:doPart,[])
link(Sub_str,14427655:Var,[])
}
Add(GlobalVar,14427655,651,28)
{
Name="startdir"
}
Add(DSC_Query,13892799,805,147)
{
DSManager="database"
link(onQuery,15114553:doStr,[])
link(onError,5448304:doValue,[])
}
Add(MT_String,15114553,924,147)
{
link(onResult,9510237:doEvent1,[(966,153)(966,185)(548,185)(548,195)])
}
Add(GetDataEx,14465055,238,469)
{
link(Data,5566409:FString,[(244,363)(314,363)])
}
Add(GetDataEx,5729389,245,392)
{
link(Data,818685:FString,[])
}
Add(GetDataEx,11246006,392,497)
{
link(Data,5413130:FString,[])
}
Add(MultiStrPart,15390091,693,189)
{
Count=6
}
Add(Case,10146551,644,245)
{
Value=String(NotFound)
link(onTrue,5037257:doString,[])
}
Add(DoData,2093922,595,245)
{
link(onEventData,10146551:doCase,[])
link(Data,15390091:Part1,[(601,237)(699,237)])
}
Add(Hub,9510237,560,189)
{
OutCount=3
link(onEvent1,15390091:doSplit,[])
link(onEvent2,2093922:doData,[(584,202)(584,251)])
}
Add(FormatStr,5037257,700,252)
{
DataCount=5
Mask="('%1','%2','%3','%4','New','0'),"
Point(FString)
link(onFString,15360551:doWork2,[(756,258)(756,202)])
link(Str1,15390091:Part2,[])
link(Str2,15390091:Part3,[])
link(Str3,15390091:Part4,[])
link(Str4,15390091:Part5,[])
link(Str5,15390091:Part6,[])
}
Add(StrList,4191527,861,196)
{
}
Add(Replace,7717153,861,266)
{
SubStr="),\r\n;"
DestStr=");"
link(onReplace,16462616:doString,[])
link(Str,4191527:Text,[])
}
Add(FormatStr,5911929,777,259)
{
Mask="%1;"
link(onFString,15360551:doWork3,[(844,265)])
}
Add(Hub,8356559,749,259)
{
OutCount=10
link(onEvent1,5911929:doString,[])
link(onEvent2,7717153:doReplace,[])
link(onEvent3,13955723:doCompare,[(783,279)(783,314)])
link(onEvent10,11978024:doString,[(805,328)(805,398)])
}
Add(FormatStr,16462616,924,266)
{
Mask="INSERT INTO file (Name,Path,Date1,Size,Stat,Hide) VALUES %1;"
Point(FString)
}
Add(DSC_Exec,3130417,924,315)
{
DSManager="database"
link(onError,9210925:doValue,[])
link(SQL,16462616:FString,[])
}
Add(Timer,6239381,553,259)
{
Enable=1
AutoStop=1
link(onTimer,8356559:doEvent1,[])
}
Add(GlobalVar,9210925,994,322)
{
Name="error"
}
Add(GlobalVar,2378110,609,469)
{
Name="error"
}
Add(GlobalVar,2733831,602,525)
{
Name="error"
}
Add(If_else,13955723,812,308)
{
Op2=Integer(1)
link(onTrue,3822349:doWork3,[(851,314)])
link(onFalse,13322663:doEvent1,[])
link(Op1,4191527:Count,[(818,250)(874,250)])
}
Add(HubEx,15360551,840,196)
{
link(onEvent,4191527:doAdd,[])
}
Add(MT_String,2652565,952,637)
{
link(onResult,2531898:doFileExists,[])
}
Add(FileTools,2531898,994,616)
{
link(onEnd,13514935:doEvent,[])
}
Add(GlobalVar,15102907,840,602)
{
Name="startdir"
}
Add(FormatStr,8463911,833,637)
{
Mask="SELECT "%2\"||Path||"\"||Name FROM file \r\n--where Hide=1;"
Point(FString)
link(onFString,15462461:doQuery,[])
link(Str2,15102907:Var,[])
AddHint(-230,191,199,39,Mask)
}
Add(IndexToChanel,13514935,1043,616)
{
Point(Data)
link(onEvent1,1866408:doPart,[])
link(Data,2652565:Str,[(1049,604)(1003,604)(1003,681)(958,681)])
}
Add(DSC_Query,15462461,896,637)
{
DSManager="database"
link(onQuery,2652565:doStr,[])
link(onError,16687435:doValue,[(936,657)(936,699)])
}
Add(Hub,13322663,868,315)
{
link(onEvent1,3130417:doExec,[])
link(onEvent2,3822349:doWork1,[(911,328)(911,258)])
}
Add(HubEx,3822349,847,252)
{
Angle=3
link(onEvent,4191527:doClear,[(851,209)])
}
Add(FormatStr,10511622,1155,616)
{
Mask="UPDATE file SET Hide = "1" WHERE Name = "%1";"
link(onFString,10146195:doWork2,[])
}
Add(DSC_Exec,3298604,1288,616)
{
DSManager="database"
link(onError,696960:doValue,[])
}
Add(GlobalVar,696960,1358,623)
{
Name="error"
}
Add(FilePartElm,1866408,1099,616)
{
Point(Part)
link(onPart,10511622:doString,[])
}
Add(MST_Clear,14731764,301,91)
{
MSTControl="tbl"
}
Add(DSC_Query,10215262,1218,168)
{
DSManager="database"
link(onQuery,1415183:doRowAction,[])
}
Add(FormatStr,11471579,1148,168)
{
DataCount=4
Mask="SELECT\r\nid,Name\r\nFROM file\r\nWHERE Hide =0;"
link(onFString,10215262:doQuery,[])
}
Add(FormatStr,9422051,1155,679)
{
Mask="UPDATE file SET Hide = "0" WHERE Name = "%1";"
link(onFString,10146195:doWork3,[(1201,685)])
}
Add(FilePartElm,14948845,1099,679)
{
Point(Part)
link(onPart,9422051:doString,[])
}
Add(HubEx,10146195,1197,616)
{
link(onEvent,14522306:doEvent1,[])
}
Add(GlobalVar,16687435,945,693)
{
Name="error"
}
Add(StatusBar,11571795,609,609)
{
}
Add(GlobalVar,10321777,539,609)
{
Name="error"
link(onValue,11571795:doText,[])
}
Add(GlobalVar,5448304,861,161)
{
Name="error"
}
Add(FormatStr,12331231,847,728)
{
Mask="SELECT "%2\"||Path||"\"||Name FROM file where Hide=1;"
Point(FString)
link(onFString,4663461:doQuery,[])
link(Str2,1538008:Var,[])
AddHint(39,96,199,26,Mask)
}
Add(MT_String,16516159,952,728)
{
link(onResult,6276387:doFileExists,[])
}
Add(FileTools,6276387,994,707)
{
link(onEnd,717224:doEvent,[])
}
Add(IndexToChanel,717224,1043,707)
{
Point(Data)
link(onEvent2,14948845:doPart,[(1087,720)(1087,685)])
link(Data,16516159:Str,[(1049,695)(1003,695)(1003,772)(958,772)])
}
Add(DSC_Query,4663461,896,728)
{
DSManager="database"
link(onQuery,16516159:doStr,[])
link(onError,10323337:doValue,[(936,748)(936,790)])
}
Add(GlobalVar,10323337,945,784)
{
Name="error"
}
Add(GlobalVar,1538008,854,686)
{
Name="startdir"
}
Add(Hub,14522306,1232,616)
{
InCount=2
link(onEvent1,3298604:doExec,[])
}
Add(DoData,2983242,1001,266)
{
}
Add(IndexToChanel,13195485,1120,462)
{
Point(Data)
link(onEvent1,2590690:doString,[])
link(onEvent2,392218:doString,[(1167,475)(1167,510)])
link(Data,7057670:Var3,[(1126,439)])
}
Add(GlobalVar,12829000,854,357)
{
Name="startdir"
}
Add(FormatStr,11978024,847,392)
{
Mask="SELECT\r\n"%2\"\r\n||Path\r\n||"\"\r\n||Name\r\n||';'\r\n||Hide\r\nFROM file;"
Point(FString)
link(onFString,5692408:doQuery,[])
link(Str2,12829000:Var,[])
AddHint(-47,45,56,104,Mask)
}
Add(DSC_Query,5692408,910,392)
{
DSManager="database"
link(onQuery,414844:doStr,[])
}
Add(Button,4468557,1057,168)
{
Left=345
Top=15
link(onClick,11471579:doString,[])
}
Add(MT_String,414844,966,392)
{
link(onResult,5609116:doEvent1,[])
}
Add(FileTools,3032649,1064,462)
{
link(onEnd,13195485:doEvent,[])
link(FileName,7057670:Var2,[])
}
Add(StrPart,1626735,1064,392)
{
Char=";"
Point(Left)
Point(Right)
link(onPart,604350:doPart,[])
}
Add(Hub,5609116,1022,392)
{
link(onEvent1,1626735:doSplit,[])
link(onEvent2,3032649:doFileExists,[(1050,405)(1050,489)])
}
Add(GetDataEx,7057670,1064,434)
{
link(Data,1626735:Left,[])
}
Add(FormatStr,392218,1224,504)
{
Mask="UPDATE file SET Hide = "0" WHERE Name = "%1";"
link(onFString,14437340:doWork3,[(1271,510)])
link(Str1,5032413:Var3,[(1230,446)])
}
Add(FilePartElm,604350,1189,399)
{
Point(Part)
}
Add(GetDataEx,5032413,1189,441)
{
link(Data,604350:Part,[])
}
Add(DSC_Exec,15758952,1302,462)
{
DSManager="database"
link(onError,3275235:doValue,[])
}
Add(GlobalVar,3275235,1351,469)
{
Name="error"
}
Add(HubEx,14437340,1267,462)
{
link(onEvent,15758952:doExec,[])
}
Add(InfoTip,13719783,742,350)
{
Info=#28:файл существует / отсутсвует|
Width=638
Height=228
}
Add(InfoTip,15166246,742,588)
{
Info=#28:файл существует / отсутсвует|
Width=638
Height=228
}
Add(Hub,12261731,770,637)
{
link(onEvent1,8463911:doString,[])
link(onEvent2,12331231:doString,[(816,650)(816,734)])
}


https://forum.hiasm.com/getfile/39093

--- Добавлено в 2020-08-06 18:07:57



Редактировалось 5 раз(а), последний 2020-08-06 18:07:57
карма: 0
well done turner
0
файлы: 1Projects.zip [580.7KB] [356]
vip
#1.1контекстная реклама от партнеров
Ответов: 1328
Рейтинг: 69
#2: 2020-08-06 18:29:00 ЛС | профиль | цитата
powerbatman, посмотри в примерах Files/DirectoryChanges.sha
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#3: 2020-08-08 10:56:00 ЛС | профиль | цитата
powerbatman, совет Konst помог?
Или хочешь использовать БД ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 113
Рейтинг: 1
#4: 2020-08-08 12:30:59 ЛС | профиль | цитата
Tad писал(а):
совет Konst помог?
Или хочешь использовать БД ?


не подходит. мне нужно именно сохранять в базу данных. вариант который я сделал рабочий, там два варианта. первый тормозит , потому что одновременно идет - проверка - FileExist и сразу же - Update table. второй вариант работает чуть лучше.
карма: 0
well done turner
0
Ответов: 113
Рейтинг: 1
#5: 2020-08-08 19:55:00 ЛС | профиль | цитата
придумал !!

[]
Add(MainForm,2953706,35,49)
{
Width=421
Height=506
BorderStyle=3
Position=1
Point(Handle)
Point(onClose)
link(onCreate,5558056:doEvent1,[])
link(onClose,1827425:In,[])
}
Add(Button,13228053,126,119)
{
Left=15
Top=10
link(onClick,1427945:doEvent1,[])
}
Add(MTStrTbl,3474883,1302,287)
{
Left=15
Top=45
Width=385
Height=420
Name="tbl"
Columns=#1:1|1:2|1:3|1:4|1:5|
}
Add(MST_RowAction,1415183,1246,287)
{
MSTControl="tbl"
}
Add(Ini,6101227,399,63)
{
FileName="Settings.ini"
Section="Section1"
Key="Startdir"
Type=1
link(onResult,3910624:doValue,[])
}
Add(Browse,1417443,301,133)
{
Edit=1
NewDirButton=1
Point(doDefaultFolder)
link(onBrowse,13505115:doEvent1,[])
}
Add(Hub,13505115,350,133)
{
OutCount=3
link(onEvent1,6101227:doWrite,[(382,139)(382,76)])
link(onEvent3,10359188:doSearch,[])
}
Add(Hub,1427945,252,119)
{
OutCount=3
link(onEvent1,10137780:doWork3,[(284,125)])
link(onEvent3,1417443:doBrowse,[])
}
Add(HubEx,10137780,280,63)
{
link(onEvent,6101227:doRead,[])
}
Add(FileSearch,10359188,399,147)
{
link(onSearch,8916523:doEvent1,[(537,153)(537,69)])
link(onEndSearch,6239381:doTimer,[(536,160)(536,265)])
link(Dir,9381493:Var,[])
}
Add(GlobalVar,3910624,448,63)
{
Name="startdir"
}
Add(DoData,2820051,210,140)
{
link(onEventData,1417443:doDefaultFolder,[])
link(Data,6053331:Var,[])
}
Add(GlobalVar,6053331,210,98)
{
Name="startdir"
}
Add(Hub,5558056,140,63)
{
OutCount=3
link(onEvent1,10137780:doWork2,[])
link(onEvent2,2820051:doData,[(182,76)(182,146)])
link(onEvent3,5631628:doEvent1,[(168,83)(168,114)(65,114)(65,258)])
}
Add(GlobalVar,9381493,406,112)
{
Name="startdir"
}
Add(If_else,14635017,595,126)
{
Op2=String()
link(onFalse,8426976:doCompare,[])
link(Op1,3028391:Var2,[])
}
Add(StrMask,8426976,644,133)
{
Mask="*.jpg"
link(onTrue,8648575:doCompare,[])
link(Str,211618:Var2,[])
AddHint(-56,34,36,13,Mask)
}
Add(StrMask,8648575,693,140)
{
Mask="*.JPG"
link(onTrue,8164732:doString,[])
link(Str,947588:Var2,[])
AddHint(-50,46,42,13,Mask)
}
Add(FilePartElm,16044689,595,63)
{
Point(Part)
}
Add(Hub,8916523,560,63)
{
OutCount=5
link(onEvent1,16044689:doPart,[])
link(onEvent2,12436035:doReplace,[])
link(onEvent3,5269118:doRead,[])
link(onEvent4,794274:doValue,[])
link(onEvent5,14635017:doCompare,[(584,97)(584,132)])
}
Add(FilePartElm,9790652,700,70)
{
Mode=0
link(onPart,3559165:doTrim,[])
}
Add(Trim,3559165,749,70)
{
Char="\"
Point(Result)
}
Add(GetDataEx,3028391,595,105)
{
link(Data,16044689:Part,[])
}
Add(GetDataEx,211618,644,105)
{
Angle=3
link(Data,3028391:Var3,[])
}
Add(FormatStr,8164732,742,147)
{
DataCount=5
Mask="SELECT\r\ncase when count (*)=0 then 'NotFound'\r\n else max(Name) end\r\n||';'\r\n||'%1'\r\n||';'\r\n||'%2'\r\n||';'\r\n||'%3'\r\n||';'\r\n||'%4'\r\n||';'\r\n||'Stat'\r\n||';'\r\n||'Hide'\r\n||';'\r\n||'%5'\r\nFROM file\r\nWHERE Name =("%1");"
link(onFString,13892799:doQuery,[])
link(Str1,947588:Var3,[(748,110)])
link(Str2,3559165:Result,[])
link(Str3,5269118:DateModify,[(762,128)(832,128)])
link(Str4,5269118:FileSize,[(769,131)(839,131)])
link(Str5,794274:Value,[(776,131)(895,131)])
}
Add(GetDataEx,947588,693,105)
{
Angle=3
link(Data,211618:Var3,[])
}
Add(FileAttributes,5269118,812,77)
{
Format="DMY_hm"
Point(FileSize)
}
Add(DS_SQLite,5372330,546,518)
{
Name="database"
Point(onError)
link(FileName,11246006:Var3,[(552,502)])
link(onError,2733831:doValue,[])
}
Add(FileTools,11216278,392,511)
{
link(onEnd,8852679:doEvent,[])
link(FileName,11246006:Var2,[])
}
Add(VisualStrings,15496986,399,399)
{
Lines=#12:Database.wdb|
Width=81
}
Add(DSC_Exec,10834091,546,462)
{
DSManager="database"
link(onError,2378110:doValue,[])
link(SQL,1747880:Text,[])
}
Add(IndexToChanel,8852679,448,511)
{
link(onEvent1,5617543:doEvent1,[(492,517)(492,461)])
link(onEvent2,16007518:doWork2,[])
}
Add(Hub,5617543,504,455)
{
OutCount=3
link(onEvent1,16007518:doWork1,[(529,461)])
link(onEvent2,10834091:doExec,[])
}
Add(Dir,15926344,315,231)
{
Point(MyDocumentDir)
}
Add(StrList,13928195,126,350)
{
Strings=#6:%3;Dir|20:%3\Database;Database|16:%3\Backup;Backup|16:%3\Export;Export|
}
Add(ArrayEnum,10030415,140,434)
{
link(onItem,15168602:doSplit,[(193,440)(193,321)])
link(onEndEnum,1763487:doEvent1,[])
link(Array,13928195:Array,[])
}
Add(DirTools,4196025,77,497)
{
Point(doExists)
link(onOK,14122577:doEvent,[])
}
Add(FormatStr,5566409,308,315)
{
DataCount=3
Mask="%2%1"
Point(FString)
link(onFString,4196025:doExists,[(353,321)(353,422)(65,422)(65,524)])
link(Str2,15926344:CurrentDir,[])
link(Str3,16166707:Part,[(328,299)(167,299)])
}
Add(IndexToChanel,14122577,140,497)
{
Point(Data)
link(onEvent1,9220000:doEvent1,[])
link(Data,14465055:Var1,[(146,474)])
}
Add(Registry,2432250,238,490)
{
HKey=1
Value="DataBase"
link(Data,14465055:Var2,[])
link(Key,5729389:Var2,[])
link(Value,15168602:RemaindStr,[])
}
Add(MultiStrData,15168602,252,315)
{
Count=1
link(onPart1,5566409:doString,[])
}
Add(Hub,9220000,196,497)
{
link(onEvent1,2432250:doWrite,[])
link(onEvent2,15926344:doDir,[(229,510)(229,237)])
}
Add(WinTools,10387803,154,203)
{
Point(FileName)
link(Handle,2953706:Handle,[(160,187)(41,187)])
}
Add(FilePartElm,16166707,161,252)
{
Mode=2
Point(Part)
link(onPart,818685:doString,[])
link(FileName,10387803:FileName,[])
}
Add(Hub,5631628,77,252)
{
InCount=2
OutCount=4
link(onEvent1,16166707:doPart,[])
link(onEvent2,10030415:doEnum,[(101,265)(101,440)])
}
Add(FormatStr,818685,245,252)
{
Mask="Software\%1"
Point(FString)
}
Add(Registry,2826727,329,441)
{
HKey=1
Value="DataBase"
link(onRead,5413130:doString,[])
link(Key,5729389:Var3,[(342,397)])
}
Add(FormatStr,5413130,392,441)
{
Mask="%1\%2"
Point(FString)
link(onFString,13474341:doValue,[])
link(Str2,15496986:Text,[])
}
Add(Hub,1763487,196,441)
{
link(onEvent1,2826727:doRead,[])
link(onEvent2,11216278:doFileExists,[(295,454)(295,538)])
}
Add(HubEx,16007518,525,518)
{
link(onEvent,5372330:doOpen,[])
}
Add(StrList,1747880,546,392)
{
Strings=#19:CREATE TABLE file (|37:id INTEGER PRIMARY KEY AUTOINCREMENT,|17: Name TEXT NULL,|17: Path TEXT NULL,|18: Date1 TEXT NULL,|18: Size TEXT NULL,|17: Stat TEXT NULL,|19: Hide INTEGER NULL|2:);|
}
Add(LineBreak,996760,448,553)
{
link(Out,5372330:doClose,[(512,559)(512,531)])
Primary=[1827425,-357,-483]
}
Add(Replace,12436035,644,70)
{
link(onReplace,9790652:doPart,[])
link(Sub_str,14427655:Var,[])
}
Add(GlobalVar,14427655,651,28)
{
Name="startdir"
}
Add(DSC_Query,13892799,805,147)
{
DSManager="database"
link(onQuery,15114553:doStr,[])
link(onError,5448304:doValue,[])
}
Add(MT_String,15114553,924,147)
{
link(onResult,9510237:doEvent1,[(966,153)(966,185)(548,185)(548,195)])
}
Add(GetDataEx,14465055,238,469)
{
link(Data,5566409:FString,[(244,363)(314,363)])
}
Add(GetDataEx,5729389,245,392)
{
link(Data,818685:FString,[])
}
Add(GetDataEx,11246006,392,497)
{
link(Data,5413130:FString,[])
}
Add(MultiStrPart,15390091,693,189)
{
Count=6
}
Add(Case,10146551,644,245)
{
Value=String(NotFound)
link(onTrue,5037257:doString,[])
}
Add(DoData,2093922,595,245)
{
link(onEventData,10146551:doCase,[])
link(Data,15390091:Part1,[(601,237)(699,237)])
}
Add(Hub,9510237,560,189)
{
OutCount=3
link(onEvent1,15390091:doSplit,[])
link(onEvent2,2093922:doData,[(584,202)(584,251)])
link(onEvent3,6669839:doEvent1,[])
}
Add(FormatStr,5037257,700,252)
{
DataCount=5
Mask="('%1','%2','%3','%4','New','0'),"
Point(FString)
link(onFString,15360551:doWork2,[(756,258)(756,202)])
link(Str1,15390091:Part2,[])
link(Str2,15390091:Part3,[])
link(Str3,15390091:Part4,[])
link(Str4,15390091:Part5,[])
link(Str5,15390091:Part6,[])
}
Add(StrList,4191527,861,196)
{
}
Add(Replace,7717153,861,266)
{
SubStr="),\r\n;"
DestStr=");"
link(onReplace,16462616:doString,[])
link(Str,4191527:Text,[])
}
Add(FormatStr,5911929,777,259)
{
Mask="%1;"
link(onFString,15360551:doWork3,[(844,265)])
}
Add(Hub,8356559,749,259)
{
OutCount=10
link(onEvent1,5911929:doString,[])
link(onEvent2,7717153:doReplace,[])
link(onEvent3,13955723:doCompare,[(773,279)(773,314)])
link(onEvent4,11978024:doString,[(771,286)(771,398)])
link(onEvent5,14170147:doClear,[])
}
Add(FormatStr,16462616,924,266)
{
Mask="INSERT INTO file (Name,Path,Date1,Size,Stat,Hide) VALUES %1;"
Point(FString)
}
Add(DSC_Exec,3130417,924,315)
{
DSManager="database"
link(onError,9210925:doValue,[])
link(SQL,16462616:FString,[])
}
Add(Timer,6239381,553,259)
{
Enable=1
AutoStop=1
link(onTimer,8356559:doEvent1,[])
}
Add(GlobalVar,9210925,994,322)
{
Name="error"
}
Add(GlobalVar,2378110,609,469)
{
Name="error"
}
Add(GlobalVar,2733831,602,525)
{
Name="error"
}
Add(If_else,13955723,812,308)
{
Op2=Integer(1)
link(onTrue,3822349:doWork3,[(851,314)])
link(onFalse,13322663:doEvent1,[])
link(Op1,4191527:Count,[(818,250)(874,250)])
}
Add(HubEx,15360551,840,196)
{
link(onEvent,4191527:doAdd,[])
}
Add(MT_String,2652565,952,637)
{
link(onResult,2531898:doFileExists,[])
}
Add(FileTools,2531898,994,616)
{
link(onEnd,13514935:doEvent,[])
}
Add(GlobalVar,15102907,840,602)
{
Name="startdir"
}
Add(FormatStr,8463911,833,637)
{
Mask="SELECT "%2\"||Path||"\"||Name FROM file \r\n--where Hide=1;"
Point(FString)
link(onFString,15462461:doQuery,[])
link(Str2,15102907:Var,[])
AddHint(-230,191,199,39,Mask)
}
Add(IndexToChanel,13514935,1043,616)
{
Point(Data)
link(onEvent1,1866408:doPart,[])
link(Data,2652565:Str,[(1049,604)(1003,604)(1003,681)(958,681)])
}
Add(DSC_Query,15462461,896,637)
{
DSManager="database"
link(onQuery,2652565:doStr,[])
link(onError,16687435:doValue,[(936,657)(936,699)])
}
Add(Hub,13322663,868,315)
{
OutCount=3
link(onEvent1,3130417:doExec,[])
link(onEvent2,3822349:doWork1,[(911,328)(911,258)])
}
Add(HubEx,3822349,847,252)
{
Angle=3
link(onEvent,4191527:doClear,[(851,209)])
}
Add(FormatStr,10511622,1155,616)
{
Mask="UPDATE file SET Hide = "1" WHERE Name = "%1";"
link(onFString,10146195:doWork2,[])
}
Add(DSC_Exec,3298604,1288,616)
{
DSManager="database"
link(onError,696960:doValue,[])
}
Add(GlobalVar,696960,1358,623)
{
Name="error"
}
Add(FilePartElm,1866408,1099,616)
{
Point(Part)
link(onPart,10511622:doString,[])
}
Add(MST_Clear,14731764,301,91)
{
MSTControl="tbl"
}
Add(DSC_Query,10215262,1183,287)
{
DSManager="database"
link(onQuery,1415183:doRowAction,[])
}
Add(FormatStr,11471579,1113,287)
{
DataCount=4
Mask="SELECT\r\nid,Name\r\nFROM file\r\nWHERE Hide =0;"
link(onFString,10215262:doQuery,[])
}
Add(FormatStr,9422051,1155,679)
{
Mask="UPDATE file SET Hide = "0" WHERE Name = "%1";"
link(onFString,10146195:doWork3,[(1201,685)])
}
Add(FilePartElm,14948845,1099,679)
{
Point(Part)
link(onPart,9422051:doString,[])
}
Add(HubEx,10146195,1197,616)
{
link(onEvent,14522306:doEvent1,[])
}
Add(GlobalVar,16687435,945,693)
{
Name="error"
}
Add(StatusBar,11571795,609,609)
{
}
Add(GlobalVar,10321777,539,609)
{
Name="error"
link(onValue,11571795:doText,[])
}
Add(GlobalVar,5448304,861,161)
{
Name="error"
}
Add(FormatStr,12331231,847,728)
{
Mask="SELECT "%2\"||Path||"\"||Name FROM file where Hide=1;"
Point(FString)
link(onFString,4663461:doQuery,[])
link(Str2,1538008:Var,[])
AddHint(39,96,199,26,Mask)
}
Add(MT_String,16516159,952,728)
{
link(onResult,6276387:doFileExists,[])
}
Add(FileTools,6276387,994,707)
{
link(onEnd,717224:doEvent,[])
}
Add(IndexToChanel,717224,1043,707)
{
Point(Data)
link(onEvent2,14948845:doPart,[(1087,720)(1087,685)])
link(Data,16516159:Str,[(1049,695)(1003,695)(1003,772)(958,772)])
}
Add(DSC_Query,4663461,896,728)
{
DSManager="database"
link(onQuery,16516159:doStr,[])
link(onError,10323337:doValue,[(936,748)(936,790)])
}
Add(GlobalVar,10323337,945,784)
{
Name="error"
}
Add(GlobalVar,1538008,854,686)
{
Name="startdir"
}
Add(Hub,14522306,1232,616)
{
InCount=2
link(onEvent1,3298604:doExec,[])
}
Add(IndexToChanel,13195485,1134,462)
{
@Hint=#7:0 - нет|8:1 - есть|
Point(Data)
link(onEvent1,13800548:doCompare,[])
link(onEvent2,7726672:doCompare,[(1206,475)(1206,517)])
link(Data,7057670:Var3,[(1140,439)])
AddHint(-140,17,47,26,@Hint)
}
Add(GlobalVar,12829000,868,357)
{
Name="startdir"
}
Add(FormatStr,11978024,861,392)
{
Mask="SELECT\r\n"%2\"\r\n||Path\r\n||"\"\r\n||Name\r\n||';'\r\n||Hide\r\nFROM file;"
Point(FString)
link(onFString,5692408:doQuery,[])
link(Str2,12829000:Var,[])
AddHint(-47,45,56,104,Mask)
}
Add(DSC_Query,5692408,924,392)
{
DSManager="database"
link(onQuery,414844:doStr,[])
}
Add(Button,4468557,1057,28)
{
Left=345
Top=15
link(onClick,2183950:In,[])
}
Add(MT_String,414844,980,392)
{
link(onResult,5609116:doEvent1,[])
}
Add(FileTools,3032649,1078,462)
{
link(onEnd,13195485:doEvent,[])
link(FileName,7057670:Var2,[])
}
Add(StrPart,1626735,1078,392)
{
Char=";"
Point(Left)
Point(Right)
link(onPart,604350:doPart,[])
}
Add(Hub,5609116,1036,392)
{
link(onEvent1,1626735:doSplit,[])
link(onEvent2,3032649:doFileExists,[(1064,405)(1064,489)])
}
Add(GetDataEx,7057670,1078,434)
{
link(Data,1626735:Left,[])
}
Add(FormatStr,392218,1336,518)
{
Mask="UPDATE file SET Hide = "0" WHERE Name = "%1";"
link(onFString,3672232:doWork3,[(1390,524)])
link(Str1,5032413:Var3,[(1342,446)])
AddHint(91,28,199,26,Mask)
}
Add(FormatStr,2590690,1287,469)
{
Mask="UPDATE file SET Hide = "1" WHERE Name = "%1";"
link(onFString,3672232:doWork2,[])
link(Str1,5032413:Var2,[])
AddHint(-362,68,199,26,Mask)
}
Add(FilePartElm,604350,1287,399)
{
Point(Part)
}
Add(GetDataEx,5032413,1287,441)
{
link(Data,604350:Part,[])
}
Add(DSC_Exec,15758952,1414,469)
{
DSManager="database"
link(onError,3275235:doValue,[])
}
Add(GlobalVar,3275235,1463,476)
{
Name="error"
}
Add(InfoTip,13719783,742,350)
{
Info=#28:файл существует / отсутсвует|
Width=897
Height=228
}
Add(InfoTip,15166246,742,588)
{
Info=#28:файл существует / отсутсвует|
Width=638
Height=228
}
Add(Hub,12261731,770,637)
{
link(onEvent1,8463911:doString,[])
link(onEvent2,12331231:doString,[(816,650)(816,734)])
}
Add(MST_Clear,14170147,1050,287)
{
MSTControl="tbl"
link(onChange,11471579:doString,[])
}
Add(FileTools,7104589,1358,70)
{
link(onEnd,14718250:doEvent,[])
link(FileName,2283247:Var2,[])
}
Add(Memory,794274,889,84)
{
}
Add(IndexToChanel,14718250,1421,70)
{
Point(Data)
link(Data,2283247:Var3,[(1427,58)])
}
Add(MultiStrData,4552264,1288,84)
{
From=6
Count=1
}
Add(GetDataEx,2283247,1358,53)
{
Angle=3
link(Data,4552264:RemaindStr,[(1329,58)(1329,135)(1294,135)])
}
Add(Hub,11272390,1260,84)
{
link(onEvent1,4552264:doSplit,[])
link(onEvent2,7104589:doFileExists,[])
}
Add(MultiStrData,15647387,973,203)
{
From=1
}
Add(Hub,6669839,945,203)
{
link(onEvent1,15647387:doSplit,[])
}
Add(ChildForm,4593918,203,616)
{
@Hint=#13:sqlLiteEditor|
link(onEvent1,14160006:doWork1,[])
AddHint(42,34,72,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,5987856,21,21)
{
EventCount=1
WorkCount=2
Height=291
link(doWork1,9675557:doEvent1,[(49,27)(49,62)])
link(doWork2,5775026:doEvent1,[(42,34)(42,223)])
}
Add(MainForm,4418767,77,28)
{
Left=35
Top=105
Width=901
Height=411
Visible=1
Caption="SQL Lite DataBase"
BorderStyle=5
Position=1
Point(doVisible)
link(onCreate,10373045:doWork1,[(121,48)])
}
Add(ChildPanelEx,9395875,154,126)
{
link(onEvent,1897764:doEvent1,[])
link(onColumns,1897764:doAdd,[])
link(onResult,1897764:doAdd1,[])
link(onAddTable,1897764:doAddTable,[])
link(onClick,5987856:onEvent1,[(298,160)(298,27)])
link(CurTable,1897764:String,[(160,116)(201,116)(201,168)(223,168)])
link(Str,14463673:Var,[])
}
BEGIN_SDK
Add(EditMultiEx,2041326,17,17)
{
WorkCount=#6:doRead|13:doChangeTable|18:doChangeTableWORef|9:doOrderBy|14:doChangeTable1|6:doData|
EventCount=#7:onEvent|9:onColumns|8:onResult|10:onAddTable|7:onClick|
VarCount=#6:String|
DataCount=#8:CurTable|6:Str=db|
Width=461
Height=711
link(doRead,117125:doRead,[(39,23)(39,41)])
link(doChangeTable,13067049:doEvent1,[(30,30)(30,328)])
link(doChangeTableWORef,7913076:doExec,[(24,37)(24,377)])
link(doOrderBy,4490964:doString,[(21,44)(21,244)])
link(doChangeTable1,8595992:doEvent1,[(163,51)(163,48)])
link(doData,9513445:doData,[(33,58)(33,692)])
link(String,11554674:Var1,[(23,610)])
}
Add(Panel,1153699,406,245)
{
Width=885
Height=100
Align=2
ModeSp=3
BevelInner=0
Point(doColor)
}
Add(Button,11958215,49,105)
{
Left=10
Top=10
Caption="Open"
link(onClick,7957763:doWork2,[])
}
Add(Edit,11123252,140,35)
{
Left=75
Top=10
Width=475
Text=""
link(onChange,117125:doWrite,[(182,41)(182,72)(38,72)(38,48)])
}
Add(Button,10284059,49,147)
{
Left=560
Top=10
Caption="Close"
link(onClick,8598513:doClose,[(96,153)(96,118)])
}
Add(Button,16020080,49,287)
{
Left=10
Top=40
Caption="Exec"
link(onClick,921486:doExec,[])
}
Add(Edit,14492220,147,238)
{
Left=75
Top=40
Width=475
Text=""
}
Add(SQLite_DB,8598513,140,105)
{
link(onOpen,81402:doEvent1,[])
link(onError,2015033:doWork1,[(207,118)])
link(FileName,11123252:Text,[])
}
Add(SQLite_Exec,921486,140,287)
{
link(onError,11534722:doWork2,[])
link(dbHandle,11258424:Var2,[])
link(SQL,14492220:Text,[])
}
Add(HubEx,11534722,203,287)
{
link(onEvent,2041326:onEvent,[(237,293)(237,23)])
}
Add(Button,1246604,49,196)
{
Left=10
Top=70
Caption="Query"
link(onClick,15265412:doWork2,[])
}
Add(Edit,3174856,168,147)
{
Left=75
Top=70
Width=475
Text=""
link(onChange,6904249:doValue,[])
}
Add(SQLite_Query,14626731,161,196)
{
link(onQuery,7923535:doStr,[])
link(onColumns,2041326:onColumns,[(293,209)(293,30)])
link(onError,2015033:doWork2,[])
link(dbHandle,6143869:Var3,[(167,184)])
link(SQL,3174856:Text,[])
}
Add(HubEx,2015033,203,210)
{
Angle=1
link(onEvent,11534722:doWork1,[])
}
Add(GetDataEx,6143869,140,179)
{
link(Data,8598513:dbHandle,[])
}
Add(Registry,117125,49,35)
{
HKey=1
Key="software\hiasm_prog"
Value="dbname"
link(onRead,534441:doWork2,[])
}
Add(SQLite_Query,5629196,238,112)
{
SQL="select name from sqlite_master"
link(onQuery,3365573:doWork3,[(326,118)])
link(dbHandle,6143869:Var1,[(244,95)(66,95)(66,184)])
}
Add(HubEx,15265412,126,196)
{
link(onEvent,14626731:doQuery,[])
}
Add(StrCat,15850111,406,147)
{
Str1="select * from "
link(onStrCat,10202322:doWork2,[])
}
Add(Memory,6904249,238,147)
{
}
Add(MT_String,7923535,406,196)
{
link(onResult,2041326:onResult,[(458,202)(458,37)])
}
Add(Hub,12893583,350,147)
{
InCount=2
link(onEvent1,15850111:doStrCat,[])
link(onEvent2,15265412:doWork1,[(392,160)(392,188)(130,188)])
}
Add(SQLite_Exec,12086192,189,322)
{
link(dbHandle,5341463:Var1,[(195,310)])
}
Add(GetDataEx,11258424,140,270)
{
link(Data,6143869:Var2,[])
}
Add(Hub,81402,189,105)
{
link(onEvent1,12539203:doData,[])
link(onEvent2,5629196:doQuery,[])
}
Add(Hub,13067049,105,322)
{
link(onEvent1,12086192:doExec,[])
link(onEvent2,289898:doData,[])
}
Add(DoData,289898,259,329)
{
link(onEventData,12893583:doEvent2,[(341,335)(341,160)])
link(Data,2041326:CurTable,[(265,21)(23,21)])
}
Add(HubEx,3365573,322,105)
{
link(onEvent,2041326:onAddTable,[(404,111)(404,44)])
}
Add(DropFile,16683987,189,35)
{
link(onDropFile,14004071:doWork1,[(229,41)(229,26)(123,26)])
}
Add(HubEx,14004071,119,35)
{
link(onEvent,11123252:doText,[])
}
Add(SQLite_Exec,7913076,231,371)
{
link(dbHandle,5341463:Var3,[(237,310)])
}
Add(GetDataEx,5341463,196,305)
{
link(Data,11258424:Var3,[(202,275)])
}
Add(FormatStr,4490964,49,238)
{
Mask="%1 order by %2"
link(onFString,1259825:doEvent1,[])
link(Str1,6904249:Value,[(55,232)(244,232)])
}
Add(Hub,1259825,91,238)
{
link(onEvent1,3174856:doText2,[(127,244)(127,160)])
link(onEvent2,15382384:doWork2,[])
}
Add(DoData,12539203,280,105)
{
Data=String()
link(onEventData,3365573:doWork2,[])
}
Add(Button,13595683,420,77)
{
Left=660
Top=60
Width=70
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="sql test"
link(onClick,2041326:onClick,[(465,83)(465,51)])
}
Add(Button,4818401,308,371)
{
Left=560
Top=70
Width=90
Caption="pragma table"
link(onClick,3757897:doEvent1,[])
}
Add(Hub,8595992,308,42)
{
link(onEvent1,12893583:doEvent1,[(336,48)(336,153)])
link(onEvent2,15771056:doValue,[(360,55)(360,328)])
}
Add(Memory,15771056,399,322)
{
}
Add(HubEx,10202322,444,147)
{
Angle=3
link(onEvent,3174856:doText,[(448,142)(158,142)(158,153)])
}
Add(FormatStr,14862962,392,371)
{
Mask="pragma table_info(%2)"
link(onFString,10202322:doWork3,[(448,377)])
link(Str2,15771056:Value,[])
}
Add(Hub,3757897,350,371)
{
link(onEvent1,14862962:doString,[])
link(onEvent2,15382384:doWork1,[(376,384)(376,251)])
}
Add(HubEx,15382384,126,245)
{
Angle=3
link(onEvent,15265412:doWork3,[])
}
Add(ComboBox,15566480,231,476)
{
Left=635
Top=10
Width=165
Height=21
ReadOnly=0
Point(Index)
link(onClick,11623728:doEvent1,[(296,489)(296,559)])
}
Add(FileSearch,4999797,119,567)
{
Ext="*.wdb"
link(onSearch,5720670:doEvent1,[])
link(Dir,5142250:CurrentDir,[])
}
Add(HubEx,7957763,98,105)
{
link(onEvent,8598513:doOpen,[])
}
Add(Button,6419755,28,483)
{
Left=805
Top=10
Caption="#"
link(onClick,7692730:doEvent1,[])
}
Add(Dir,5142250,126,427)
{
}
Add(FilePartElm,5508202,168,476)
{
link(onPart,15566480:doAdd,[])
}
Add(DoData,2639802,238,630)
{
link(onEventData,1195000:doWork2,[(287,636)])
link(Data,11554674:Var2,[])
}
Add(GetDataEx,11554674,238,605)
{
link(Data,9642595:Item,[(244,595)(384,595)])
}
Add(Hub,7692730,77,483)
{
OutCount=3
link(onEvent1,15566480:doClear,[])
link(onEvent2,1309386:doClear,[])
link(onEvent3,4999797:doSearch,[(105,503)(105,573)])
}
Add(HubEx,534441,98,35)
{
link(onEvent,14004071:doWork2,[])
}
Add(DoData,9513445,238,686)
{
link(onEventData,1195000:doWork3,[(309,692)])
link(Data,2041326:Str,[(244,670)(30,670)])
}
Add(HubEx,1195000,305,630)
{
Angle=3
link(onEvent,534441:doWork3,[(309,417)(102,417)])
}
Add(StrList,1309386,364,483)
{
}
Add(Hub,5720670,168,567)
{
link(onEvent1,5508202:doPart,[(194,573)(194,545)(156,545)(156,482)])
link(onEvent2,1309386:doAdd,[(320,580)(320,489)])
}
Add(ArrayRW,9642595,378,553)
{
link(Array,1309386:Array,[])
link(Index,15566480:Index,[(391,537)(251,537)])
}
Add(Hub,11623728,329,553)
{
link(onEvent1,9642595:doRead,[])
link(onEvent2,2639802:doData,[(356,566)(356,619)(226,619)(226,636)])
}
END_SDK
Add(ChildPanelEx,1897764,217,126)
{
link(onChangeTable,9395875:doChangeTable,[(262,132)(262,98)(135,98)(135,139)])
link(onInsertRecord,9395875:doChangeTableWORef,[(278,139)(278,189)(127,189)(127,146)])
link(onSort,9395875:doOrderBy,[(268,146)(268,182)(135,182)(135,153)])
link(onTableChange,9395875:doChangeTable1,[(259,153)(259,176)(142,176)(142,160)])
}
BEGIN_SDK
Add(EditMultiEx,9924836,7,7)
{
WorkCount=#8:doEvent1|5:doAdd|6:doAdd1|10:doAddTable|
EventCount=#13:onChangeTable|14:onInsertRecord|6:onSort|13:onTableChange|
VarCount=#6:String|
Width=535
Height=452
link(doEvent1,14316015:doAdd,[(43,13)(43,76)])
link(doAdd,6966357:doEvent1,[(32,20)(32,125)])
link(doAdd1,8751529:doAdd,[(18,27)(18,118)])
link(doAddTable,4974339:doCompare,[(45,34)(45,27)])
link(String,11104025:Var1,[(13,82)])
}
Add(Panel,14357374,28,147)
{
Top=100
Width=885
Height=277
Align=5
BevelInner=0
Point(doColor)
}
Add(MT_Enum,16605905,154,147)
{
link(onItem,8751529:doAddColumn,[])
}
Add(Hub,6966357,84,119)
{
OutCount=3
link(onEvent1,8751529:doClear,[])
link(onEvent2,16605905:doEnum,[(135,132)(135,153)])
link(onEvent3,1849858:doLoad,[(129,139)(129,195)])
}
Add(StringTable,8751529,231,112)
{
Left=171
Top=1
Width=713
Height=225
Align=5
Grid=0
ClearAll=0
Point(doAddColumn)
Point(onColumnClick)
Point(Strings)
Point(onBeforeLineChange)
Point(onLineChange)
Point(onMouseUp)
Point(Index)
link(onColumnClick,9924836:onSort,[(530,125)(530,27)])
link(onBeforeLineChange,14822358:doMT,[(272,132)(272,76)])
link(onLineChange,12874378:doRead,[])
link(onMouseUp,15658564:doCase,[(273,146)(273,205)(11,205)(11,244)])
}
Add(Memo,14316015,112,70)
{
Left=1
Top=226
Width=935
Height=50
Align=4
ModeSp=2
ScrollBars=3
}
Add(Hub,9296352,196,245)
{
link(onEvent1,9548068:doStrMask,[(252,251)(252,272)])
link(onEvent2,10983168:doStr,[(233,258)(233,300)])
}
Add(MT_String,9827906,343,126)
{
link(onResult,6153062:doMix,[])
}
Add(ArrayRW,12874378,287,133)
{
link(onRead,9827906:doMT,[])
link(Array,8751529:Strings,[(293,123)(276,123)(276,164)(251,164)])
}
Add(Memory,14750366,476,63)
{
}
Add(MT_String,14822358,364,63)
{
link(onResult,1502567:doMix,[])
link(Str1,5831261:Var3,[(370,53)(326,53)(326,173)])
}
Add(MT_String,10983168,238,294)
{
Delimeter=","
link(onResult,3795758:doString,[])
}
Add(MultiElementEx,1502567,420,63)
{
@IsLib=True
link(onResult,14750366:doValue,[])
link(MT,11284801:Var3,[(426,53)(411,53)(411,103)])
}
BEGIN_SDK
Add(EditMultiEx,15282780,3,3)
{
WorkCount=#5:doMix|
EventCount=#8:onResult|
DataCount=#2:MT|
Width=286
Height=179
link(doMix,9032576:doEnum,[(23,9)(23,90)])
}
Add(MT_Enum,9032576,42,84)
{
link(onItem,1907825:doRead,[])
link(onEndEnum,3370294:doEvent1,[(82,97)(82,146)])
}
Add(ArrayRW,1907825,119,84)
{
link(onRead,7939533:doString,[])
link(Array,15282780:MT,[(125,44)(9,44)])
link(Index,9032576:Index,[(132,68)(93,68)(93,125)(55,125)])
}
Add(FormatStr,7939533,175,84)
{
DataCount=4
Mask="%1 %4 %2 = '%3'"
link(onFString,16548342:doValue,[])
link(Str1,2108846:Var1,[(181,72)(162,72)(162,131)])
link(Str3,9032576:Item,[(195,67)(155,67)(155,131)(48,131)])
link(Str4,1038817:Var2,[])
}
Add(Memory,16548342,224,84)
{
}
Add(Delete,14623516,224,140)
{
link(onDelete,15282780:onResult,[(272,146)(272,9)])
link(Str,2108846:Var2,[])
}
Add(Memory,11791821,196,14)
{
Default=String(AND)
MakeExt(Default,Разделитель запроса,Delimiter)
}
Add(Hub,3370294,91,140)
{
link(onEvent1,5538388:doLength,[])
link(onEvent2,16548342:doClear,[(218,153)(218,97)])
}
Add(Length,5538388,140,140)
{
link(onLength,805807:doOperation,[])
link(Str,1038817:Var1,[(146,60)])
}
Add(Math,805807,182,140)
{
Op2=1
ResultType=0
link(onResult,14623516:doDelete,[])
}
Add(GetDataEx,2108846,224,126)
{
link(Data,16548342:Value,[])
}
Add(GetDataEx,1038817,196,55)
{
link(Data,11791821:Value,[])
}
END_SDK
Add(MT_Add,10167940,154,245)
{
link(onAdd,9296352:doEvent1,[])
link(Data,1849858:MThread,[(160,233)(307,233)])
}
Add(MT_Array,1849858,294,189)
{
}
Add(MultiElementEx,6153062,392,126)
{
link(onResult,192421:doString,[])
link(MT,11284801:Var2,[])
}
BEGIN_SDK
Add(EditMultiEx,776813,3,3)
{
WorkCount=#5:doMix|
EventCount=#8:onResult|
DataCount=#2:MT|
Width=286
Height=179
link(doMix,6648052:doEnum,[(12,9)(12,90)])
}
Add(MT_Enum,6648052,42,84)
{
link(onItem,8482138:doRead,[])
link(onEndEnum,16001948:doEvent1,[(81,97)(81,146)])
}
Add(ArrayRW,8482138,119,84)
{
link(onRead,14714989:doString,[])
link(Array,776813:MT,[(125,18)(9,18)])
link(Index,6648052:Index,[(132,74)(107,74)(107,126)(55,126)])
}
Add(GetDataEx,697901,224,123)
{
link(Data,2056801:Value,[])
}
Add(FormatStr,14714989,175,84)
{
DataCount=4
Mask="%1 %4 %2 = '%3'"
link(onFString,2056801:doValue,[])
link(Str1,697901:Var1,[(181,76)(169,76)(169,128)])
link(Str3,6648052:Item,[(195,69)(156,69)(156,131)(48,131)])
link(Str4,8153276:Var2,[])
}
Add(Memory,2056801,224,84)
{
}
Add(Delete,6659498,224,140)
{
link(onDelete,776813:onResult,[(269,146)(269,9)])
link(Str,697901:Var2,[])
}
Add(Memory,13153708,196,21)
{
Default=String(,)
MakeExt(Default,Разделитель запроса,Delimiter)
}
Add(Hub,16001948,91,140)
{
link(onEvent1,196287:doLength,[])
link(onEvent2,2056801:doClear,[(212,153)(212,97)])
}
Add(Length,196287,140,140)
{
link(onLength,13142448:doOperation,[])
link(Str,8153276:Var1,[(146,65)])
}
Add(Math,13142448,182,140)
{
Op2=1
ResultType=0
link(onResult,6659498:doDelete,[])
}
Add(GetDataEx,8153276,196,60)
{
link(Data,13153708:Value,[])
}
END_SDK
Add(GetDataEx,11284801,392,98)
{
link(Data,11765585:Var3,[(398,92)(334,92)(334,236)])
}
Add(FormatStr,3795758,280,294)
{
DataCount=3
Mask="insert into %1(%2) values(%3)"
link(onFString,9924836:onChangeTable,[(492,300)(492,13)])
link(Str1,15774321:Var2,[])
link(Str3,9548068:Str,[])
}
Add(MT_String,9548068,294,245)
{
Delimeter=","
Mask="'null'"
Point(doStrMask)
}
Add(Case,15658564,21,238)
{
Value=Integer(1)
link(onTrue,12490530:doPopupHere,[])
}
Add(PopupMenu,12490530,63,245)
{
Menu=#3:Add|6:Delete|
link(onClick,12652234:doEvent,[])
}
Add(FormatStr,192421,462,126)
{
DataCount=3
Mask="update %1 set %2 where %3"
link(onFString,16181808:doWork2,[(504,132)])
link(Str1,7877459:Var3,[(468,110)])
link(Str3,14750366:Value,[])
}
Add(GetDataEx,7877459,280,105)
{
link(Data,11104025:Var3,[(286,82)])
}
Add(IndexToChanel,12652234,105,245)

[color=gray][size=9]Редактировалось 2 раз(а), последний 2020-08-08 20:07:06[/size][/color]
карма: 0
well done turner
0
Ответов: 1328
Рейтинг: 69
#6: 2020-08-10 09:48:27 ЛС | профиль | цитата
powerbatman писал(а):
не подходит. мне нужно именно сохранять в базу данных.


так и сохраняй в бд, с DirectoryChanges не нужна будет проверка FileExist
карма: 2

0
Ответов: 16884
Рейтинг: 1239
#7: 2020-08-10 18:33:09 ЛС | профиль | цитата
powerbatman писал(а):
как можно оптимизировать схему.
Используй все возможности SQLite.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#8: 2020-08-11 16:00:20 ЛС | профиль | цитата
powerbatman, вот как-то так
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Templ1T.zip [2.2KB] [356]
Ответов: 113
Рейтинг: 1
#9: 2020-08-11 18:51:15 ЛС | профиль | цитата
Konst, не пойму как совместить с базой данных.

у меня вроде бы все срабатывает
2020-08-11_18-41-26.png
2020-08-11_18-43-51.png


Tad, выдает что нету колонки true , вот тут UPDATE files SET Hide = 0 WHERE true;

Name TEXT UNIQUE NOT NULL, делает имя уникальным ? вот я тоже думаю , если вдруг фото будет с таки же именем. У меня пока все основано на имени файла, например запрос SELECT Path,Info FROM file WHERE Name='%1'; в будущем может появиться путаница с файлами. Как такого избежать, делать запросы по id строки ?
карма: 0
well done turner
0
Ответов: 16884
Рейтинг: 1239
#10: 2020-08-12 07:37:33 ЛС | профиль | цитата
powerbatman писал(а):
выдает что нету колонки true


UPDATE files SET Hide = 0 WHERE true;
измени на

UPDATE files SET Hide = 0;
(просто твоя sqlite3.dll не поддерживает такой формат)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:powerbatman
Ответов: 113
Рейтинг: 1
#11: 2020-08-12 09:45:39 ЛС | профиль | цитата
Tad,
Tad писал(а):
UPDATE files SET Hide = 0;


отлично !
карма: 0
well done turner
0
Ответов: 16884
Рейтинг: 1239
#12: 2020-08-13 10:43:16 ЛС | профиль | цитата
powerbatman, а лучше всего создай ещё один режим компиляции программ для SQLite
SQLiteWithQBJ.jpg
Будет работать и "WHERE true" и ещё много чего.
И SQLite3.dll не нужно таскать рядом с программой.

Более подробно можно прочесть здесь:
https://forum.hiasm.com/wiki/5562

Редактировалось 4 раз(а), последний 2020-08-13 11:04:45
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2059
Рейтинг: 131
#13: 2020-08-13 11:12:46 ЛС | профиль | цитата
И SQLite3.dll не нужно таскать рядом с программой.

SqLite3Api.pas заменить на это: https://yadi.sk/d/ncTnvv8_K_Grdg
И SQLite3.dll не нужен.

На всякий случай: https://yadi.sk/d/0sPTEIePPeh5MA

Редактировалось 1 раз(а), последний 2020-08-13 11:19:38
карма: 6

0
Ответов: 113
Рейтинг: 1
#14: 2020-08-13 14:17:20 ЛС | профиль | цитата
Tad писал(а):
"WHERE true"
все равно так же не работает, зато теперь без dll
а -$O что делает ?

flint2, после замены SqLite3Api.pas, перестал компилировать

Редактировалось 1 раз(а), последний 2020-08-13 14:19:16
карма: 0
well done turner
0
Ответов: 2059
Рейтинг: 131
#15: 2020-08-13 14:45:08 ЛС | профиль | цитата
Предложение не закончено, даже точки не стоит в конце.
powerbatman писал(а):
flint2, после замены SqLite3Api.pas, перестал компилировать

Пишет-то что?
DLLLoader.pas у тебя наличествует?

Редактировалось 1 раз(а), последний 2020-08-13 14:48:09
карма: 6

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)