Про DAO и Таблици FoxPro старых версий.

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Никитка Б
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 18.12.2005 (Вс) 9:26

Про DAO и Таблици FoxPro старых версий.

Сообщение Никитка Б » 20.04.2006 (Чт) 22:48

Есть несколько вопросов:
Все что тут написано относится в БД FoxPro. Работаю обычно через dBASE IV(Почемуто FoxPro не хочет).
1) Никак не пойму как работать с таблицами ForPro(версия 2.0). Ведь у них нет такого понятия как База данных. У неё просто лежат таблици в одной папке. Как правильно написать код VB вместо моего
If Dir("c:\1.dbc") <> "" Then Kill "c:\1.dbc"
Set dbsNortwind = wrkJet.CreateDatabase("c:\1.dbc", dbLangCyrillic)
который в принципе то работает, но это же не правильно. Файл создается неизвестного формата, да и вообще он мне не нужен по сути. А без БД таблицу открыть нельзя. Подскажите как быть.

Код: Выделить всё

Option Explicit
Dim wrkJet As Workspace
Dim dbsNortwind As Database
Dim tdfUslugi As TableDef
Dim rstUslugi As Recordset
Dim indLoop As Index
Dim rstEmployees As Recordset
Private Sub Command1_Click()
    Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
    If Dir("c:\1.dbc") <> "" Then Kill "c:\1.dbc"
    Set dbsNortwind = wrkJet.CreateDatabase("c:\1.dbc", dbLangCyrillic)
    dbsNortwind.Connect = "dBASE IV;"
    Set tdfUslugi = dbsNortwind.CreateTableDef("uslugi")
    tdfUslugi.Connect = "dBASE IV;DATABASE=c:\nofine\dblocal"
    tdfUslugi.SourceTableName = "uslugi"

End Sub


Пробовал еще так:
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set dbsNortwind = wrkJet.CreateDatabase("c:\nofine\dblocal", dbLangCyrillic)
dbsNortwind.Connect = "dBASE IV"
Set tdfUslugi = dbsNortwind.CreateTableDef("uslugi")
tdfUslugi.Connect = "dBASE IV;DATABASE=c:\nofine\dblocal"
tdfUslugi.SourceTableName = "uslugi"
так он создает файл c:\NoFine\dblocal.mdb

2)Еще не искал, но я думаю не найду. Есть файлы индексов, но там индексируются не поля, а формулы. Пример:
Индексы содержащиеся в uslugi.cdx
Name Expression
OTDEL ALLTRIM(otdel)+DTOC(date,1)
KARTA PADL(ALLTRIM(nkart),15)+DTOC(date,1)
MEDR ALLTRIM(m1)+ALLTRIM(m2)+DTOC(date,1)

Сразу подскажите как с ними работать. Надоли как то указывать файл uslugi.cdx(Он лежит в одной папке с таблицей uslugi.dbf)?

3) Дайте пожалуйста ссылочки на рускоязычные сайты где можно найти информацию о параметрах в SQL запросе которые указываются в []. Например:
select FILM.FNAME, ARTIST.ARTNAME from FILM inner join ARTIST on FILM.FID=ARTIST.FILMCODE in 'C:\CINEMA'[dBase IV;database='C:\CINEMA']

Перекачал очень много учебников но там про это ни слова.
Заранее благодарен.

Никитка Б
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 18.12.2005 (Вс) 9:26

Сообщение Никитка Б » 20.04.2006 (Чт) 23:34

По вопросу №1 догадываюсь что загвоздка еще состоит в том что БД надо открывать а не создавать. Но при
Set dbsNortwind = wrkJet.OpenDatabase("c:\nofine\dblocal", , "dBASE IV;")

VB выдаёт ошибку.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 21.04.2006 (Пт) 8:15

Никитка Б писал(а):По вопросу №1 догадываюсь что загвоздка еще состоит в том что БД надо открывать а не создавать. Но при
Set dbsNortwind = wrkJet.OpenDatabase("c:\nofine\dblocal", , "dBASE IV;")

VB выдаёт ошибку.


1.
Код: Выделить всё
Set db = OpenDatabase("c:\nofine\dblocal", 0, 0, "dBASE IV")

3. Я нашел в DAOSDK.CHM

blinow
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 27.06.2005 (Пн) 3:13

Сообщение blinow » 23.04.2006 (Вс) 4:21

Лучше все таки через ADO на Microsoft.com появился FoxPro OLEDB 9.0. Я установил, отлично работает. Перед этим был 8.0 в Windows типа NT глючил, не всегда правильно устанавливал кодировку а 9.0 все отлично работает.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 2

    TopList