ПредишенСледващото

превръща в PDF от HupBaH9I

∙ Сделки използват данните. кеширана в буфера на сделка. не на данните на диска. да се използва най-новите данни.

∙ сделки не може да замени съществуващата индекс файл с командата

∙ сделки могат да се използват само с маси. притежавани бази данни.

Ако активирате ръчна корекция на маса или файл по време на сделка с помощта на стадото () и RLOCK (). вие трябва да бъдете сигурни, за да се отстрани на блока. END СДЕЛКИ командни съобщения за заключване.

В вложени транзакции, отказвайте и END ТРАНСАКЦИИ команди работят с промените. , което е настъпило след последната команда ЗАПОЧНЕТЕ сделката.

Промени в вложени транзакции не са написани на компактдиска. до приключване на най-високо ниво. че не е последната END СДЕЛКИ командата се изпълнява.

Ако сделките се извършват на едни и същи данни. Предимството е, че промяна. че е извършено последното. материя. на какво ниво е то. Например.

REPLACE брой С 103 ЗА брой = 203

REPLACE зачиташ ЗА брои 203 103

Таблица стойност поле и остава равен на 203.

Препишете примера така. че последната команда ЗАМЕНИ ще се извършва преди следващото ниво на вмъкване.

REPLACE зачиташ ЗА брои 203 103

REPLACE брой С 103 ЗА брой = 203

Сега стойността на полето ще останат същите. който и да е - 103.

Няколко съвета за повишаване на производителността на мрежата в Microsoft Visual FoxPro приложения

Ако местната станция има достатъчно място на твърдия ви диск или достатъчно RAM, можете да подобрите производителността. поставяне на временни файлове на локалния диск или на RAM диск. Пренасочване на тези файлове на локалния диск или RAM диск подобрява производителността чрез намаляване на достъпа на мрежовото устройство. Можете да посочите алтернативно за тези файлове. включително израз EDITWORK, SORTWORK, PROGWORK и TMPFILES си CONFIG.FPW файл.

Ако е възможно да сортирате данните. че има смисъл да го правят. като работни маси по-бързо. Ако не сте включени индекси. Това е, използвайте търсенето с командата. а след това извадете от порядъка на индекса.

Ако можете да работите с какво - файловете изключително. след това да използвате тази опция. тъй като в изключителен достъп до режим маси е по-бързо. За да се намали възможността от едновременни опити за достъп, за записване и таблици.

намалява ключалката време. че може да се направи. блокиране на влизането само, когато данните се записва на диск. не по време на редактиране. Оптимистичен буфериране ви позволява да заключите най-кратки срокове.

Бърз достъп до инструментите за конфигуриране черупка ви позволяват да зададете режима по подразбиране за отваряне на бази данни и таблици. За да направите това, използвайте опциите за команда от менюто Tools. след

Microsoft Access

превръща в PDF от HupBaH9I

Като се покаже диалогов прозорец. както е показано на фиг. 7.20, трябва да отидете в раздел Други. След това. с помощта на набор от бутони "Default заключване", можете да изберете вида на заключване.

Ако изберете бутона "Не", можете да инсталирате само заключване не-твърда запис. С такова заключване с възможност за редактиране на всички записи на разположение на другите потребители. но в същото време. Когато редактирате запис и се опитайте да запазите промените. След това се сблъскате с един от двата варианта. Първо. най-лесният. с изключение на теб рекорд никой редактирана и промените, направени са записани на диска. На второ място. след като сте започнали да редактирате данните. които - може да ги промени, преди да, и пишат промени в диска. В последния случай, ще се появи прозорец със съобщение. където един от трите начина от ситуацията. игнорира промени на други хора и да си напишете диск. копирате променило рекорд в клипборда. За да запазите промените на други хора и отменят. Този режим е понякога по-нататък "оптимистичен" заключване.

Ако изберете да заключите променлива запис. записът ще бъде заключена за други потребители. редактирате. и съседните записи. Достъп тъй като заключване на страницата. Страници за масата за достъп е набор от записи в размер на 2 килобайта. Това заключване понякога се нарича "песимистичен".

Когато изберете блок от записи на други потребители няма да могат да отворят на масата. Трябва да се обърне внимание на факта. ако работите с помощта на данните

форма. можете да го настроите да се заключва с RecordLocks на собственост, които могат да се различават от стандартните настройки за текущата работна сесия достъп. Тези видове брави, са строго съответстват на тези видове. който сте задали, използвайки диалоговия прозорец Опции.

RecordLocks имот в допълнение към формите все още имате въпроси и доклади. В същото време за отчети не е възможно да се инсталира заключване променлива запис. Най-вероятно причината. докладва, че те не могат да се променят.

В диалоговия прозорец Опции, можете да настроите режима по подразбиране за отваряне на база данни. Но имайте предвид. че начинът на достъп до базата данни може да бъде избран, когато те са отворени чрез отваряне на диалог. Ако базата данни, достъпни единствено. че другите потребители няма да могат да се отварят. така че този режим е едва ли е подходящо за използване на мрежата.

превръща в PDF от HupBaH9I

Освен визуална настройка на различни режими за заключване. можете да използвате, за да промените обект на тяхното прилагане.

Следващият пример се използва SetOption заявка метод обект избран песимистична заключване (заключване страница), като се използва метод, и GetOption MsgBox () функция изход номер на текущия блок.

Публична Sub mygetoption () Dim mystr Както стринга

Application.SetOption "заключване по подразбиране" 2

mystr = Application.GetOption ( "_ по подразбиране Lock") MsgBox (mystr)

За форми. отчети и заявки, по които се отнасят до RecordLocks на собственост, но да имате предвид. че вече

откритите случаи на обекти за различни потребителски автомобили имота не се променя. Т.е.. промяна на някои собственост на обекта. ще трябва да убеди потребителя да едновременно близо и да отвори обектът отново. така че той е в състояние да се възползват напълно от новата стойност. Пример Recordlocks промени собственост за искането.

Публична Под myqueryproperties ()

Дим db като бази данни, Qd Както QueryDef

Комплект гб = DBEngine.Workspaces (0) .Databases (0) db.QueryDefs ( "Моята таблица на заявка"). Имоти ( "recordLocks") = 2 End Sub

Пример RecordLocks промени собственост за формата. Публична Sub ActiveFormRecordLocksChange

Screen.ActiveForm.RecordLocks = 2 End Sub

Забележка. това. като правило. докато се промени формата този имот е без значение. защото независимо от факта. че можете да го инсталирате. Форма ще използва стария тип заключване.

1. Създаване на функция. който ще съдържа един ред. ActiveFormRecordLoc1ksChange, т.е. процедура повикване. че може да бъде призован - в друга.

2. Създаване на макрос. извършване на едно действие RunCode, довод, който ще наричаме нашата функция. това. например. Това може да се нарече fActiveFormLocksChange.

3. Създаване на персонализирана лента с инструменти. където искате да плъзнете графично представяне на раздела макро макроси.

Следвайте тази последователност от действия. вие ще получите персонализирана лента с инструменти само с един бутон. Конструктор, който се задава режим за вашата форма RecordLocks имот, равна на стойността 2, което съответства на блокиране променлива рекорд. Покажи въображение. можете да допълним лентата с инструменти по-сложни инструменти. но основната технология на създаването им е описано по-горе.

Очевидно е. че едно и също нещо, което може да направи, и за доклади.

За да можете да бъдете сигурни. че всички операции. която искате да похарчите. са извършени. метод Използвайте BeginTrans, CommitTrans и RollBack Workspace обект.

метод BeginTrans започва сделка. Съгласно сделката предполага серия от промени. които се проведе на структурата на данните и база данни. Ако по някаква - всяка операция причина. включено в настоящия сделката. Те не могат да бъдат завършени. След това системата се рестартира. В същото време, не забравяйте. че работната станция трябва да има достатъчно място на диска. тъй като по време на операцията, пълна информация за операциите, включени в него се съхранява на диск.

Транзакция трябва да бъде завършен до позоваване на метода на CommitTrans. Операциите могат да бъдат вложени. не забравяйте. този ред. за завършване на сделката по-високи нива. първо трябва да завърши вложени транзакции. Ако по някаква - заявлението не може по някаква причина се прилага за CommitTrans методът, системата ще се върне към първоначалното си състояние.

Брой вложени транзакции в Access, както и в Visual FoxPro, не може да надвишава пет. В същото време се обърне внимание на следния факт. метод CommitTrans за текущите работни пространства прави всички промени за постоянно. В същото време. ако е вложен сделката. на

превръща в PDF от HupBaH9I

се връщам на сделката по-високо ниво ще доведе системата до първоначалното му състояние.

Следващият пример се отнася сделка да отида до втория запис и за промяна на стойността на полето Name. Преди приключването на сделката за най-високо ниво е поканен да вземе решение. въвеждат промени на диска или не.

Дим db като бази данни, седм Както Workspace, първо Както _ Recordset Дим otvet Като цяло число

Определете WKS = DBEngine.Workspaces (0) Комплект db = wks.Databases (0)

Задайте първо = db.OpenRecordset ( "моята маса", _ dbOpenDynaset) wks.BeginTrans

rst.MoveLast rst.AbsolutePosition = 2 rst.Edit

първо. NAME = "Makasharipov" rst.UPDATE

otvet = MsgBox ( "Промяна", vbYesNo + _ vbDefaultButton1, "Вашето решение") Ако otvet = vbYes Тогава

wks.Rollback End Ако

В допълнение към вложени транзакции Access може да използва едновременно сделки. Тези сделки са независими един от друг. Но в същото време трябва да се създаде друг тип обект Workspace. Съответно, всяка сделка завършва независимо.

Следващият пример ще работи. само ако режимът на заключване е "Не". В този пример, обърнете внимание на последните два реда код. Дори и да промените тези линии в някои места. нищо няма да се промени. което означава, че втората сделка не работи с данните. всъщност се съхранява на диска.

Публична Под multipletrans ()

Дим db като бази данни, седм Като работно пространство, първата Както _ Recordset Дим db1 като бази данни, wks1 Като работно пространство, rst1 Както _ Recordset Определете WKS = DBEngine.Workspaces (0)

Комплект DB = wks.Databases (0)

Задайте първо = db.OpenRecordset ( "моята маса", _ dbOpenDynaset) Задайте wks1 = DBEngine.Workspaces (0)

Определете DB1 = wks1.Databases (0)

Задайте rst1 = db1.OpenRecordset ( "моята маса", _ dbOpenDynaset) wks.BeginTrans

rst.FindFirst "[Име] = 'Клинтън" rst.Edit

първо. NAME = "Dole" rst.UPDATE wks1.BeginTrans

rst1.FindFirst "[Име] = 'Dole" rst1.Edit

RST1. NAME = "Клинтън" rst1.UPDATE wks.CommitTrans wks1.CommitTrans

Сделки са глобални рамките на предмета на работното пространство. Затова си сделка може да се простира на няколко бази данни и. съответно. целия набор от обекти. те съдържат.

База данни и Recordset обекти от тип сделки имат собственост, която може да се зададе Вярно или невярно. В зависимост от техните стойности. ако можете да използвате методи BeginTrans, CommitTrans и намаление на цените за работа с тези обекти. Понякога има смисъл да се провери

Свързани статии

Подкрепете проекта - споделете линка, благодаря!