Титла: Lazarus (Free Pascal) и база данни Публикувано от: laskov в Apr 06, 2011, 12:00 Импортирам dbf (MyDbf) файл в празна SQL (ZQuery1) таблица:
Цитат if ZQuery1.BOF and ZQuery1.EOF thenПреди изпълнението MyDbf.RecordCount - ZQuery1.RecordCount = 40257, а след изпълнението е 702. Импортират се 39555 записа. Сумите на N в едната и в другата база са еднакви. Отварям dbf файла с друга програма - според нея броят на записите е 39555, но според FoxPro са 40257. Моля, посъветвайте ме как да открия причината за несъответствието в броя на записите! Титла: Re: Lazarus (Free Pascal) и база данни Публикувано от: laskov в Apr 06, 2011, 18:57 Направих следната проверка:
Цитат MyDbf.First;и цикълът се изпълнява докато достигне MyDbf.EOF and ZQuery1.EOF , което трябва да означава, че (това, което се чете от) двете таблици са идентични. Дали може да се окаже, че в dbf-а има записи, маркирани за изтриване? Титла: Re: Lazarus (Free Pascal) и база данни Публикувано от: jet в Apr 06, 2011, 19:56 пробвай във fox pro
set delete on и тогава брой записите, после set delete off и пак ги преброй Титла: Re: Lazarus (Free Pascal) и база данни Публикувано от: laskov в Apr 07, 2011, 11:18 Тези команди FoxPro-то ги хареса, но аз не видях разлика в бройката на записите. Не се и замислих много, ами направих едно PACK и истината лъсна :) . Благодаря!
Титла: Re: Lazarus (Free Pascal) и база данни Публикувано от: laskov в Apr 14, 2011, 11:10 Нов проблем. Опитвам се да обработя един текст на кирилица, UTF-8, но се оказа, че това с Lazarus не е лесна работа. Ето как успях да направя аналог на MidStr()
Цитат procedure TForm1.Button1Click(Sender: TObject);И резултатът е Цитат стринг, завършващ на 0Но в зависимост от съдържанието на стринга, първият и/или последният символ може да не са коректни. Има ли по-свястен начин? Освен това, направих промени в една от библиотеките му. Той разбира, че е променена и я записва, но не я компилира! Как да му кажа да я компилира? Титла: Re: Lazarus (Free Pascal) и база данни Публикувано от: laskov в Dec 05, 2012, 12:49 Проблемите по-горе бяха решени. Сега имам следния въпрос:
Имам база данни и навигатор: TDBNavigator. След цъкване върху бутоните nbInsert или nbEdit работещият с програмата трябва да продължи с въвеждане на данни или с цъкване върху nbPost или nbCancel от навигатора. Но не е проблем той да цъкне върху друг обект, който няма връзка с горните действия. Как се решава този проблем? Май намерих решение: Ползват се TGroupBox. Ако всичко, което е свързано с въпросната таблица от базата данни е в GroupBox1, а всичко останало в GroupBox2, то Цитат procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TDBNavButtonType); |