Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.12.04;
Скачать: [xml.tar.bz2];

Вниз

При наличии индексов Query.Open вешает программу   Найти похожие ветки 

 
SergP   (2003-11-15 14:41) [0]

Запрос у меня такой:

select *
from post2
where topic_id=:topic
order by post_id


А вот кусок кода:
queryPost.Close;
QueryPost.Prepare;
querypost.ParamByName("topic").AsInteger:=n;
QueryPost.open;


http://delphimaster.net/view/3-1068844324/

Как я здесь писал у меня иногда прога зависает намертво. Я попробовал поэкспериментировать и уничтожил индексный файл. Стало все работать как положено!!!
Почему же глючило при наличии индексов (В числе индексов были индексы по полям topic_id и post_id).?
то что индексный файл мог быть испорченым я не думаю. Я пробовал переиндексировать таблицу с помощью Reindex ( FoxPro ). Но это не помогало.


 
Anatoly Podgoretsky   (2003-11-15 15:30) [1]

Переиндексировать или возможно у тебя программа неправильно написана.


 
SergP   (2003-11-15 15:59) [2]

А может ли быть проблема с тем что я использую индексные файлы *.cdx а не *.mdx?


> Anatoly Podgoretsky © (15.11.03 15:30) [1]
> Переиндексировать или возможно у тебя программа неправильно
> написана.


если бы программа была большой то я бы согласился ч тем что может быть что-то не так написано. но в данном случае это даже и не программа, а своеобразная заготовка к программе, с минимальным количеством кода.

Да и все-таки програма вешается при QueryPost.open;

Есть правда странная вещь:
В моей проге (на данном этапе) происходит только выборка из таблиц с помощью TQuery. никаких модификаций в таблице я не делаю. Почему же тогда при работе проги изменяется дата и время файлов *.cdx и *.fpt (хотя дата/время *.dbf файла остается прежней)?


 
Anatoly Podgoretsky   (2003-11-15 16:32) [3]

SergP © (15.11.03 15:59) [2]
А какой у тебя движок и драйвер? Это очень важно.


 
SergP   (2003-11-15 20:06) [4]


> Anatoly Podgoretsky © (15.11.03 16:32) [3]
> SergP © (15.11.03 15:59) [2]
> А какой у тебя движок и драйвер? Это очень важно.


Ну я ничего "левого" (в отношении БД) не ставил. Вместе с D5 ставил все что к ней прилагалось и все.
Правда какой драйвер используется я не знаю: (DBASE или FOXPRO), просто в TTable он указывается, а в TQuery я не находил такого свойства. А как он сам это определяет я не в курсе.

2 Anatoly Podgoretsky , Вы это имели ввиду или нужно привести версии DLL"ок из BDE?

PS. Может лучше попробовать переделать все под БД Paradox?


 
sniknik   (2003-11-16 00:34) [5]

попробуй сначала индексы на *.mdx поменять (проще). раз через BDE работаеш то dBase для него "родной" (Naitive Driver)
фокс в BDE только поддерживается, но похоже не очень хорошо, сам работал со старым форматом до fox 2.5 dos нареканий нет, но на версии постарше (2.6 dos, 2.5 win) уже жалобы слышал, не говоря уже о Visual Foxpro у него поддержки в BDE посто нет (надо уже через ODBC открывать).

в каком fox-е сделаны таблици и/или индексы?


 
SergP   (2003-11-16 08:23) [6]

Пока работаю через BDE, но потом буду стараться переделывать на что-то не использующее BDE.

Таблица и индексы создавались FoxPro 2.6 (dos).

Вобщем когда уничтожил индексы то сабж перестал вешать программу. Теперь мне пришлось добавить индексы. (Добавляю понемногу и экспериментирую).
select *
from post2
where topic_id=:topic
order by post_id
Раньше когда были глюки , у меня были проиндексированы несколько полей (в.т.ч. оба поля используемые в этом запросе).
Теперь, после того как я снова решил добавить индексы, из используемых в запроске я добавил только по полю post_id (просто мне это было необходимо для другого места программы (там используется TTable для поиска по этому полю.). Но TQuery пока работает нормально.

В принципе таблицы FoxPro я использую потому что раньше долго работал с Foxpro, и мне fox-ом намного привычнее открывать таблицы для просмотра, редактирования, изменения структуры и пр. чем Database Desktop.

А вообще может лучше переделать под таблицы Paradox? Как посоветуете?


 
sniknik   (2003-11-16 13:46) [7]

> В принципе таблицы FoxPro я использую потому что раньше долго работал с Foxpro, и мне fox-ом намного привычнее открывать таблицы для просмотра, редактирования, изменения структуры и пр. чем Database Desktop.
:о)) аналогично, тоже долго с фоксом работал, после вернулся в дельфи на базы. fox-ом до сих пор пользуюсь.

> А вообще может лучше переделать под таблицы Paradox? Как посоветуете?
только не парадокс. возьми чего нибудь другое, SQL server какой нибудь (только не спрашивай конкретно какой, у каждого свое мнение) или то что близко к SQL серверу (access например). из серверов MSSQL, IB, Oracl, .... Pervasive (класный сервер, тоже доводилось работать, кое чего оттуда явно нехватает)

даже если делаеш локальную базу, то во первых изучить принцип серверных баз не повредит во вторых у всех (почти) SQL серверов есть локальный вариант.

ну и вообще от задачи зависит, если нужно чтонибудь "легкое" с небольшими возможностями баз но рабочее везьде без инсталяции то нужно "все носить с собой", а значит компоненты использовать с поддержкой каких нибудь таблиц (тоже дофига таких).


 
SergP   (2003-11-16 16:03) [8]


> sniknik © (16.11.03 13:46) [7]


> только не парадокс. возьми чего нибудь другое, SQL server
> какой нибудь (только не спрашивай конкретно какой, у каждого
> свое мнение) или то что близко к SQL серверу (access например).
> из серверов MSSQL, IB, Oracl, .... Pervasive (класный сервер,
> тоже доводилось работать, кое чего оттуда явно нехватает)
>
> даже если делаеш локальную базу, то во первых изучить принцип
> серверных баз не повредит во вторых у всех (почти) SQL серверов
> есть локальный вариант.


Ну Oracle мне и так приходится изучать, хотя бы потому что это используется на работе. MySQL тоже изучаю уже чисто для себя.
Но вот в данном случае мне больше подходит именно локальная база, потому что то что я пишу - это клиент одного из форумов. :)
А данные форума я решил хранить в БД. Так удобнее. И поиск можно будет потом реализовать с помощью SQL запросов.
Сейчас например при выборе раздела прога выбирает из базы все топики относящиеся к разделу, далее при выборе топика выбирает все посты этого топика и отображает их в TWebBrowser.
В БД заносится только самое необходимое. Таким образом мне удалось до минимума свести кол-во трафика при очередном обновлении БД.
Но прогой планирую пользоваться не только я сам, но так же и другие участники того форума, к которому пишется клиент. Поэтому серверные БД для этого практически не подходят. И вообще желательно было бы обойтись даже без BDE, но пока я его использую на этапе написания проги. Ведь не каждый человек скачавши прогу, будет устанавливать себе тот или иной SQL сервер.
И вообще у кого какие будут рекомендации насчет использования в данном проекте конкретных БД, (но локальных).


 
dnvlad   (2003-11-16 17:11) [9]

MS ACCESS очень катит для локальных БД


 
Vlad   (2003-11-16 17:19) [10]

Тут пример.
http://dolphin.mcsimm.com/


 
Anatoly Podgoretsky   (2003-11-16 17:38) [11]

БДЕ поддержка ФоксПро почти отсутствует, 2.5 и только на чтение, при записи никто не гарантирует, что не будет испорчено или будет работать. Это не мое мнение, а рекомендация Борланда.
Кроме того и чтение тоже весьма ограниченая, при наличии индексов и не только не гарантируется никакая работоспособно, то есть зависание нормальное явление по Борланду.
Нуже Фокспро через БДЕ, значит отказ от родного драйвера и поиск драйверо ODBC которые смогу правильно работать, так как нужно тебе.
Проще сменить движок. Или перейти на dBase IV-VII


 
SergP   (2003-11-16 18:30) [12]


> Anatoly Podgoretsky © (16.11.03 17:38) [11]

Понятно. Значит придется отказаться от FOXPRO.
Я вот посмотрел на :

> Vlad © (16.11.03 17:19) [10]
> Тут пример.
> http://dolphin.mcsimm.com/


и это меня тем более убедило, что придется отказаться от БД FoxPro.
Кстати, Vlad © , большое спасибо за ссылку.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
4-11741
rentgen
2003-10-05 06:41
2003.12.04
Текущий Handle


4-11750
lamorg
2003-10-10 17:31
2003.12.04
Как установить ani-курсор


4-11714
Pavels
2003-10-10 10:16
2003.12.04
помогите с EnumWindows


4-11724
Chlavik
2003-10-08 20:27
2003.12.04
Event при подключении сетевого диска...


4-11747
npAKTuk
2003-10-07 09:03
2003.12.04
Реализация DragNDrop в API





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский