Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 21:19 28.06.24 
Компютри и Интернет
   >> Delphi
*Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Проблем с база даннинови  
АвторУчeниka (Нерегистриран)
Публикувано25.04.01 13:19



Тривиална програма с база данни. Но от време на време компютъра или блокира, или се рестартира, при което купища въведени данни се загубват.
Как да осигуря сигурен запис на диска след употребата на TTable.Post?



Тема Много просто но не елегантно решение...нови [re: Учeниka]  
Автор PhantomAS (новак)
Публикувано25.04.01 15:26



Ако си с D5 (dBase, Paradox работи със сигурност) погледни какво прави метода
TTable.FlushBuffers; TQuery.FlushBuffers
ако го извикаш в OnAfterPost на съответната table - ще запише пормените на диска.
Има и друг на4ин - на по ниско ниво - BDE има подобна функция - ако ти трябва ще ти я кажа.
Защо казвам 4е на4ина не е елегантен - ами по добре ще е да решиш проблема с блокирането - това е по доброто решение.

---
IN VINO VERITAS!


Тема Re: Много просто но не елегантно решение...нови [re: PhantomAS]  
Автор SDR (новак)
Публикувано26.04.01 11:52



oshte po lesno .Close sledwano ot .Open - towa e za wsishki wersii i wyrshi syshtata rabota!



Тема Re: Много просто но не елегантно решение...нови [re: SDR]  
Автор PhantomAS (новак)
Публикувано26.04.01 23:54



Ама я си представи една заявка с 10000 реда - която трябва да се update-ва - това close - open ще отнеме 1 мин даже и на бърза машина.
Колкото до разли4ните версии - ами има си поддръжка в BDE -то и на4ин да се запишат промените "насилствено" 4рез BDE фунция - об4е на мен не ми харесва подобно решение - макар 4е в някои слу4аи това е единственото решение.
Още един на4ин за който се сещам е да се вклю4и Local Share - то и при това системата сама си записва всяка промяна - не е нужно да се правят подобни глупости с отваряне и затвяряне на таблица.

---
IN VINO VERITAS!


Тема ДА, ама НЕнови [re: PhantomAS]  
АвторУчeниka (Нерегистриран)
Публикувано27.04.01 08:46



Тези начини и разни други ги опитах. Въведа си няколко записа, давам запис (Post) и рестартирам компютъра без да съм напуснал формата. Ефектът е нулев - нищо не се записва. Опитвах FlushBuffers, ApplyUpdates и т.н., но не става.
Така че викът ми за помощ остава.



Тема Re: ДА, ама НЕнови [re: Учeниka]  
Автор NDeu (непознат )
Публикувано27.04.01 09:08



За Учeниka:
За да се записват при Post данните в/у диска виж. property CachedUpdates: Boolean;
За PhantomAS:
При TTable Close/Open не изтегля всички записи, а само тези които се изобразяват.

Редактирано от NDeu на 27.04.01 09:12.



Тема Re: ДА, ама НЕнови [re: NDeu]  
Автор Mandor (8-)
Публикувано27.04.01 10:53



Всичко, което казва NDeu, плюс забележката, че проблемът може да е на по-ниско ниво - при инсталиране на Windows по подразбиране е разрешено кеширане на запис. Така че е възможно Windows-а да не ти записва данните, а не Database Engine-а.



Тема По принцип съм съгласен...нови [re: NDeu]  
Автор PhantomAS (новак)
Публикувано27.04.01 12:29



за таблиците - да - макар 4е когато отваряш 10-15 пак ще се замота. Оба4е при Query - тата въпроса както знаеш е доста по - комплексен - времето за отваряне зависи от сложността на заявка и броя таблици вклю4ени в нея.

---
IN VINO VERITAS!


Тема Кажи каква база използвашнови [re: Учeниka]  
Автор PhantomAS (новак)
Публикувано27.04.01 12:33



Paradox, dBase или друга
Освен това въпроса май "намирисва" на несвързан само с Delphi ами и с Winбозата -то при мен нямам проблеми с на4ина който казах.
Ще потърся и другия "по-дълбок" на4ин за запис на данните и ще ти го кажа.
Ама вземи си виж техниката/софтуера - най- малко защото едва ли на някой ще му е приятно да работи на компютър забиващ по 2-3 (или пове4е) пъти на ден.

---
IN VINO VERITAS!


Тема Пробвай и това... [re: Учeниka]  
Автор PhantomAS (новак)
Публикувано27.04.01 13:18



Една извадка от ..\Delphi5\BDE\bde32.hlp - за пове4е информация виж там
в BDE function reference \ Table functions
-------------------------------------------------
пробвай с тази функция
като я извикаш така
Check(DbiSaveChanges (MyTable.Handle));

тази функция трябва да е в BDE.dcu
--------------------------------------------------------
Delphi syntax

function DbiSaveChanges (hCursor: hDBICur): DBIResult stdcall;

Description

DbiSaveChanges forces all updated records associated with hCursor to disk.

Parameters

hCursor Type: hDBICur (Input)
Specifies the cursor handle.

Usage

If the table associated with hCursor is a temporary table (created with DbiCreateTempTable), DbiSaveChanges saves all buffered changes to disk and makes the table permanent. This table will not be removed when the cursor is closed.

SQL: This function is not supported with SQL tables.

DbiResult Meaning

DBIERR_NONE All changes have been saved successfully.
DBIERR_INVALIDHNDL The specified cursor is invalid or NULL.
DBIERR_NODISKSPACE The changes could not be saved because there is no disk space available.
DBIERR_NOTSUPPORTED This function is not supported for SQL tables.

---
IN VINO VERITAS!



Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.