1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Базы Данных

Тема в разделе "Программирование", создана пользователем Гость, 08.04.06.

  1. Гость

    Гость Гость

    Пожалуйста кто нибудь подскажите как написать БД в делфи средствами паскаля. Что бы не использовать Table что в BDE. Меня именно интересует как пишутся такие простые БД как CheMax. Сам я новичок и перерыл весь интернет в поисках этой инфы и ничего путного не нашол. Я пока сам не знаю как сделать так что бы при выборе соответствующей записи в ListBox выдавалась соответствующая ей запись в Memo.
     
  2. Devillio

    Devillio Активный участник

    1.198
    2
    если я правильно понимаю средства БД в дельфи, то TTable - это "средство отображения" данных, а BDE - "средство подключения" к оным. это просто мысль вслух.
    1. что такое CheMax, не знаю.
    2. Если хочешь сделать BD не через BDE, то можно воспользоваться например TClientDataSet. Он работает не через BDE.
    3. Table в любом случае не избежать. (а то как еще ты хочешь видеть данные? способы, конечно же есть, но судя по вопросу, еще рано тебе об этом)
    4. Не очень понял насчет ListBox и Memo.
    если хочешь, опиши задачу более подробно. поможем чем сможем.
    можно в icq 197-070-221
     
  3. Гость

    Гость Гость

    ПРосто такая ситуция что при использовании BDE допустим моей программы и если запустить другу прогру которая пользуется такими методами (допустим тел. справочник коих полным в нете) она начинает материться типо драйвер занят другим или вообще не найден и короче запускается но конечно ж окно где должны быть данные пустое. И у меня так не в первой. Вот я и решил написать БД средством паскаля и так как я ещё на 1-ом курсе то пока нифига незнаю про енто так тока бегло изучили паскаля за пол года и ща делфню изучаем, на сайте DelphiWorld.narod.ru встретил статью но она какая то мутная с использованием одного компонента StringGrid что крайне неудобно и в нете где бы я не рылся находил одну и ту же статью с того же сайта, странно что многие сайты держат идентичные статьи одного типа и ничего другого. Короче мне нужно методом записи создать БД и загрузить допустим в ListBox названия записей содержащихся в БД и нужно что бы при выборе записи в ListBox загружался текст к этой записи в Memo. Ну вообщем нужна такая простенькая БД методом записи. Если у вас есть какие то свои предложения по этой теме то пожалуйста помогите.
     
  4. Гость

    Гость Гость

    Используй Ado для доступа к данным. Даже если несколько прог используют Ado ни какой ошибки не происходит.
     
  5. mistik314

    mistik314 Новичок

    43
    0
    Во-первых о какой базе идет речь? Если это DBF, то глюк такого рода (ошибка драйвера при работе двух программ, обращающихся к DBF, даже в разных каталогах/разных дисках) присутствует в WinXP SP2, а точнее при установленном MDAC v. 2.8 (он и ставится с SP2). На сайте MS есть несколько советов по борьбе с этим, но лично у меня они не сработали.
    Кстати, ADO при доступе к DBF/Paradox использует BDE (здорово, да?), особенно при записи, т.е. глюк наблюдается хоть при использовании BDE, хоть ADO. Вывод - DBF использовать аккуратно, если предполагается однопользовательский доступ и базы небольшие лучше всего стронние компонеты (TDBF, например), Paradox - использовать BDE (в любом случае лучше работает - родной для Borland).

    А по поводу остального - топикстартеру явно нужно почитать несколько больше книг по программированию, чтобы хотя бы вопросы ставить грамотно. Будет грамотный вопрос - можно и ответ дать грамотно.
     
  6. Гость

    Гость Гость


    Шутить изволите? ADO с dbf работает через драйвер ODBC.
     
  7. mistik314

    mistik314 Новичок

    43
    0
    Какие шутки
    смотрим внимательно
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dno2kta/html/o2kdataformats.asp

    ODBC drivers
    When linking from or importing to an Access database (.mdb):
    SQL Server tables (SQL Server ODBC driver)

    FoxPro® tables (Microsoft FoxPro ODBC driver)

    Microsoft Access also installs additional ODBC drivers that can be used to access data from DAO or ADO code when you are using the Microsoft OLE DB Provider for ODBC:

    Microsoft Access ODBC driver
    Microsoft Excel ODBC driver
    Microsoft dBASE ODBC driver
    Microsoft Text ODBC driver

    ---> Сюда особенное внимани
    However, the preferred method of accessing data in these formats is by using the Microsoft Jet 4.0 OLE DB Provider.

    Microsoft FoxPro®
    Visual FoxPro® 2.x, 3.0, 5.0, and 6.x through the Microsoft FoxPro ODBC driver

    --> еще раз внимание
    dBASE
    III, III+, IV, and 5 — Export, import, or linking (read-only without Borland Database Engine. See note below.)
    7 (Requires current Borland Database Engine. See note below.)

    Paradox, Paradox for Windows 3.x, 4.x, and 5.0 — Export, import, or linking (Read-only without Borland Database Engine. See note below.)
    7 and 8 (Requires current Borland Database Engine. See note below.)

    смотрим ниже
    By default, the Microsoft Jet 4.0 database engine supports importing, exporting to, and linking to Paradox 3.x, 4.x, and 5.x and dBASE III, III+, IV, and 5 tables (if you link to these tables, the data in them will be read-only). Microsoft Jet 4.0 does not support Paradox 7 and 8 or dBASE 7 tables. For read/write access from Microsoft Jet to all versions of Paradox or dBASE tables, you must also have the Borland Database Engine (BDE) 4.x or later installed on your computer. If you don't have BDE 4.x or later installed, you can obtain it by installing dBASE 7, Paradox 7 and 8, or Delphi. If you own an older version of the BDE that doesn't support the Paradox 8 or dBASE 7 file formats, you can upgrade your engine from the Inprise (formerly named Borland) Web site at www.inprise.com/.

    Переводить не буду, разберетесь, я думаю.
     
  8. Гость

    Гость Гость

    Можно работать с dbf через Microsoft FoxPro ODBC driver.
    База данных какого типа?
     
  9. pegas

    pegas Участник

    311
    0
  10. mistik314

    mistik314 Новичок

    43
    0
    Все верно, эта статью читал еще в конце лета прошлого года, когда столкнулся с этой проблемой после установки SP2 к WinXp (только не указывайте на дату, это дата последней ревизии статьи).
    MS пофиксила. но, если внимательно вчитаться,
    -----
    The new ISAM drivers load and use the BDE if it exists on the computer, but functionality comparable to the Jet 3.51 ISAM is available if the BDE is not loaded. When the drivers are initially loaded by a process, they verify values in the following registry key to determine if the BDE exists on the computer:
    HKEY_LOCAL_MACHINE\Software\Borland\Database Engine
    If the values in this registry key indicate that the BDE is present on the computer, then the values are used to locate and load the BDE
    ----
    а это значит, если BDE есть, она будет использоваться. И только, если нет BDE, драйвера будуn работать сами, и то как в версии Jet 3.51.
    Но самое главное, ошибка при запуске двух программ с использованием ADO (или ADO и BDE) для доступа к DBF остается. Причем, как уже писал, эта ошибка присутствует в WinXP SP2, в которой драйвера имеют версии: mspbde40.dll 4.00.8015.0 и msxbde40.dll4.00.8025.0, т.е. старше, чем указанные в статье. В SP1 такой ошибки нет. Игры с реестром в указанной ветке лично мне никакой выгоды не принесли, хотя кое-где в форумах утверждалось, что проблему можно решить таким путем.
    Вывод все равно остается тем же - или не использовать DBF (что наиболее правильно) или использовать с учетом всех этих тонкостей и желательно только для чтения.
    А вообще интересно, чего топикстартер молчит, или у него все решилось а мы тут распинаемся:)