<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=897969</guid>
        <pubDate>Thu, 27 Oct 2005 09:53:16 +0000</pubDate>
        <title>&amp;quot;Corrupt table/index header&amp;quot; при запросе</title>
        <link>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=897969</link>
        <description><![CDATA[ReLock: ;) Ура&#33; Все разобрал. Короче дело вот в чем: <br>
<br>
- если у базы расширение &lt;DBF&gt;, то можно смело делать для нее индекс в том же каталоге. К заголовке файла выставится признак, что база инпользует индекс и к ней можно делать любые запросы. <br>
<br>
- если же у базы расширение, отличное от DBF (например, XXX), то при создании индекса для этой базы в том же каталоге (в заголовок файла опять же выставится признак, что база использует индекс) - к этой базе нельзя применить запрос (BDE ругается на заголовок базы и индекса, мол поврежден). Для этого случая единственным решением будет создать для базы индекс в другом каталоге (в заголовок файла не запишется, что база использует индексы, зато к ней можно применить любые запросы).<br>
<br>
Вот такая вот кухня. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-10-27T13:55:51+04:00">27.10.05, 09:55</time></span></span><br>
Все&#33; Тема закрыта.]]></description>
        <author>ReLock</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=896704</guid>
        <pubDate>Wed, 26 Oct 2005 08:32:53 +0000</pubDate>
        <title>&amp;quot;Corrupt table/index header&amp;quot; при запросе</title>
        <link>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=896704</link>
        <description><![CDATA[ReLock: Вообщем разобрался с этой проблемой. Только есть некоторые непонятные вещи. Может кто-нибудь сможет объяснить эти явления? :?: <br>
Короче дело вот в чем:<br>
<br>
Из полного имени файла конфигурации, который лежит в другом каталоге (имя файла конфигурации и имя БД идентичны, просто лежат в разных каталогах), вытаскивается только имя и меняется расширение на CDX:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cIndex:= ChangeFileExt(ExtractFileName(TourFName),&#39;.cdx&#39;);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
База данных становится активной:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DataSet.Active := True;</div></ol></div></div></div></div><br>
База индексируется:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">SetIndexTable(cIndex,&#39;LNAME&#39;,&#39;LNAME + FNAME&#39;,&#39;Tables&#39;,DataSet, True);</div></ol></div></div></div></div><br>
После этих действий в каталоге с базой данных создается индекс для этой БД и в заголовке БД-файла выставляется признак, что &quot;используется индекс&quot;. База индексируется. Но в этом случае при попытке выполнить к этой БД запрос - выходит вышеописанная ошибка.<br>
<br>
Если же сделать так:<br>
<br>
Формирую новое расширение (полный путь остается):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cIndex:= ChangeFileExt(TourFName,&#39;.cdx&#39;);</div></ol></div></div></div></div><br>
База данных становится активной:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">DataSet.Active := True;</div></ol></div></div></div></div><br>
База индексируется:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">SetIndexTable(cIndex,&#39;LNAME&#39;,&#39;LNAME + FNAME&#39;,&#39;Tables&#39;,DataSet, True);</div></ol></div></div></div></div><br>
После этих действий в каталоге с файлом конфигурации создается индекс для БД и в заголовке БД-файла <strong class='tag-b'>НЕ</strong> выставляется признак, что &quot;используется индекс&quot;. База индексируется. И только <strong class='tag-b'>В ЭТОМ</strong> случае к базе можно применить запрос.<br>
<br>
 :?:  :?:  :?:]]></description>
        <author>ReLock</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=892539</guid>
        <pubDate>Fri, 21 Oct 2005 11:53:00 +0000</pubDate>
        <title>&amp;quot;Corrupt table/index header&amp;quot; при запросе</title>
        <link>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=892539</link>
        <description><![CDATA[ReLock: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=118916&view=findpost&p=891757'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Anatoly Podgoretsky &#064; <time class="tag-quote__quoted-time" datetime="2005-10-20T17:09:51+00:00">20.10.05, 17:09</time></span><div class='quote '>file.dbt это не файл &quot;базы&quot; а мемо поля<br>
file.cdx это не dBase, а ФоксПро</div></div><br>
file.dbt - это просто шаблон. Я могу написать &quot;file.xxx&quot;. Это дела не меняет. У меня в структуре при создании БД указан тип: DBASEIV. Я специально поменял расширение, чтобы небыло привязки иконки к DBF. Хотелось сделать свою иконку. Так сказать: DBT - &quot;Database Tournament&quot;.<br>
<br>
to <strong class='tag-b'>BAS</strong>:<br>
Активация и индексация:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">cIndex:= ChangeFileExt(ExtractFileName(TourFName),&#39;.cdx&#39;); </div><div class="code_line">DataSet.Active := True; </div><div class="code_line">SetIndexTable(cIndex,&#39;LNAME&#39;,&#39;LNAME + FNAME&#39;,&#39;Tables&#39;,DataSet, True);</div></ol></div></div></div></div><br>
Процедура индексации:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">procedure SetIndexTable(FIndex,NIndex,EIndex,DIndex: String; FDataSet: THalcyonDataSet; SortAscending: Boolean); </div><div class="code_line">var </div><div class="code_line">&nbsp;&nbsp;SortDir: TgsSortStatus; </div><div class="code_line">&nbsp;&nbsp;FName: String; </div><div class="code_line">begin </div><div class="code_line">&nbsp;&nbsp;FName := AppPath + DIndex + &#39;\&#39; + FIndex; </div><div class="code_line">&nbsp;&nbsp;if FileExists(FName) then DeleteFile(FName); </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;with FDataSet do </div><div class="code_line">&nbsp;&nbsp; &nbsp;if Active then </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if SortAscending = True then </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SortDir:= halcn6db.Ascending </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SortDir:= halcn6db.Descending; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IndexFiles.Clear; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IndexOn(FIndex,NIndex,EIndex,&#39;&#39;,halcn6db.Duplicates,SortDir); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IndexFiles.Add(FIndex); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IndexName := NIndex </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end; </div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Сам запрос:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Query.DatabaseName := MainForm.DataSet.DatabaseName;</div><div class="code_line">&nbsp;&nbsp;SQLText := SQLText + &#39;SELECT ID,NUMBER,STATE,LNAME,FNAME,SNAME,VIRTUAL,TPOINTS &#39;;</div><div class="code_line">&nbsp;&nbsp;SQLText := SQLText + &#39;FROM &quot;&#39; + MainForm.DataSet.TableName + &#39;&quot; &#39;;</div><div class="code_line">&nbsp;&nbsp;SQLText := SQLText + &#39;WHERE STATE = 1 &#39;;</div><div class="code_line">&nbsp;&nbsp;SQLText := SQLText + SortVariant;</div><div class="code_line">&nbsp;&nbsp;Query.SQL.Clear;</div><div class="code_line">&nbsp;&nbsp;Query.SQL.Add(SQLText);</div><div class="code_line">&nbsp;&nbsp;Query.Open;</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2005-10-21T11:57:45+00:00">21.10.05, 11:57</time></span></span><br>
Хотелось бы напомнить, что 3-4 дня назад все отлично работало при такой структуре. Вчера заметил такой ньюанс. Когда запускаю программу и создаю новую базу, то с ней все в порядке (можно даже выполнять к ней запросы). Но как только я добавляю в нее новые записи, либо я закрываю программу и подключаю базу снова - происходит вышеописанная ошибка. После ошибки база отключается. В структуре БД повреждений нет. Поключается свободно и все данные из нее в программе отображаются корректно.]]></description>
        <author>ReLock</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=892083</guid>
        <pubDate>Fri, 21 Oct 2005 06:11:37 +0000</pubDate>
        <title>&amp;quot;Corrupt table/index header&amp;quot; при запросе</title>
        <link>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=892083</link>
        <description><![CDATA[Bas: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=118916&view=findpost&p=891747'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ReLock &#064; <time class="tag-quote__quoted-time" datetime="2005-10-20T16:50:18+00:00">20.10.05, 16:50</time></span><div class='quote '> В чем может быть дело?</div></div><br>
В<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=118916&view=findpost&p=891747'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ReLock &#064; <time class="tag-quote__quoted-time" datetime="2005-10-20T16:50:18+00:00">20.10.05, 16:50</time></span><div class='quote '>&#39;Index does not exist</div></div><br>
Как создаешь, как удаляешь?]]></description>
        <author>Bas</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=891757</guid>
        <pubDate>Thu, 20 Oct 2005 17:09:51 +0000</pubDate>
        <title>&amp;quot;Corrupt table/index header&amp;quot; при запросе</title>
        <link>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=891757</link>
        <description><![CDATA[Anatoly Podgoretsky: file.dbt это не файл &quot;базы&quot; а мемо поля<br>file.cdx это не dBase, а ФоксПро]]></description>
        <author>Anatoly Podgoretsky</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=891747</guid>
        <pubDate>Thu, 20 Oct 2005 16:50:18 +0000</pubDate>
        <title>&amp;quot;Corrupt table/index header&amp;quot; при запросе</title>
        <link>https://forum.sources.ru/index.php?showtopic=118916&amp;view=findpost&amp;p=891747</link>
        <description><![CDATA[ReLock: Добрый вечер.<br>
<br>
Имеется база данных (DBaseIV/BDE). Поля в базе создаются динамически (в зависимости от настроек программы). База подключается и отображается в сетке на форме (среда разработки Borland Delphi 7). При попытке выполнения запроса к этой базе выдается ошибка: <br>
<br>
&quot;Project ... raised exception class EDBEngineError with message &#39;Index does not exist. Corrupt table/index header. <br>
File: [путь_к_файлу]_file.dbt (собственно сама БД) <br>
File or directory does not exist. <br>
File: [путь_к_файлу]_file.dbX <br>
File: [путь_к_файлу]_file.MDX. Process stoped. И т.д. и т.п.&#39;&quot; <br>
<br>
Так вот. Сам файл я проверял открытием в программе просмотра БД. Все с ним в порядке (в программе БД тоже отображается нормально). Индекс для этой БД тоже есть (&quot;file.cdx&quot;). <br>
<br>
Каждый день после работы с проектом я делаю бэкап последнего. Открыл копию от 16.10 и запустил скомпиленый exe. Все работает. Перекомпилил эту копию - та же ошибка. В чем может быть дело?]]></description>
        <author>ReLock</author>
        <category>Delphi: Базы данных</category>
      </item>
	
      </channel>
      </rss>
	