VB6 и Paradox

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

VB6 и Paradox

Сообщение SKYS » 27.09.2007 (Чт) 6:39

Имеется база данных (предположительно paradox *.db) При подключении в VB при помощи data выдает ошибку при запуске программы 'external table isn't in the expected format' а при использовании adodc выдает <[microsoft][Драйвер ODBC Paradox ] ошибка синтаксиса в предложении FROM > . И никак не получается может кто поможет.[/syntax]
Хорошо когда не знаеш да еще забудеш !!!!

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 27.09.2007 (Чт) 7:07

Пиши подробнее -- как подключаешься. Какой запрос (в котором та самая ошибка синтаксиса)?
Salus populi suprema lex

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 7:26

Пытаюсь подключиться через св-ва контролов . При подключении через DATA
Connect Paradox 5.x;
databasename 'Место расположения БД'
recordsource 'имя таблицы'

через adodc
Создаю подключение к БД paradox 5.0
Код: Выделить всё
connectionstring
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DSN=1;DBQ=C:\D30\DATA;DefaultDir=C:\NDSD30\DATA;DriverId=538;FIL=Paradox 5.X;MaxBufferSize=2048;PageTimeout=600;"

в закладре recordsource
commandtype = table
выбираю таблицу нажимаю ОК и получаю ошибку также пробовал с помощью sql запроса вида select * from 'имя таблицы '
Через Delphi конектится все нормально но на delphi програмить не умею.
Хорошо когда не знаеш да еще забудеш !!!!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 9:38

Может это поможет кому нибудь мне помоч Очень Нужно
Вложения
1.jpg
Вот ошибка
1.jpg (863.54 Кб) Просмотров: 647
Хорошо когда не знаеш да еще забудеш !!!!

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 9:52

ХМ Странно некоторые таблицы открываютсмя а некоторые нет. ВСЕ голова взрывается.
Хорошо когда не знаеш да еще забудеш !!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.09.2007 (Чт) 9:54

Дельфи работает с базами Paradox через BDE.
Ты же используешь ODBC-драйвер. Возможно этот драйвер не умеет понимать имена таблиц, в которых есть символ $.
Попробуй переименовать таблицы.
Lasciate ogni speranza, voi ch'entrate.

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 10:09

alibek писал(а):Дельфи работает с базами Paradox через BDE.
Ты же используешь ODBC-драйвер. Возможно этот драйвер не умеет понимать имена таблиц, в которых есть символ $.
Попробуй переименовать таблицы.


:lol: действительно спасибо :) КАК я понимаю файлы с $ ODBC не поймет . Придется програмно копровать куданибуть необходимые таблицы переименововать и пользоваться.
Хорошо когда не знаеш да еще забудеш !!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.09.2007 (Чт) 11:00

Попробуй поискать другой драйвер (ODBC или OLEDB), возможно в более свежих версиях эта проблема решена.
Lasciate ogni speranza, voi ch'entrate.

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 11:18

Да я решил сделать следующим образом

Код: Выделить всё
Dim NewFSO As New FileSystemObject
Private Sub Command1_Click()
Co.ShowOpen
Set File = NewFSO.GetFile(Co.FileName)
File.Copy ("C:\ПИК\gtd.db")
Dim ad As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
str = "Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=c:\;dbq=C:\ПИК\;CollatingSequence=ASCII;"""
ad.Open str
rs.Open "gtd", ad, adOpenDynamic, adLockReadOnly
Set DataGrid1.DataSource = ad
While Not rs.EOF
Text1.Text = Text1.Text & rs.Fields(2) & Chr(13) & Chr(10)
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
ad.Close
Set ad = Nothing
End Sub


Но Одна проблема
строка
Код: Выделить всё
Set DataGrid1.DataSource = ad

выдает ошибку type mismatch
Хорошо когда не знаеш да еще забудеш !!!!

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 27.09.2007 (Чт) 11:44

Хм.. А что оно по твоему должно выдавать, если DataSource - это Recordset, а ты ему суешь Connection?
label:
cli
jmp label

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 11:58

iGrok писал(а):Хм.. А что оно по твоему должно выдавать, если DataSource - это Recordset, а ты ему суешь Connection?
:oops:
Я уже понял и исправил :oops:
Еще вопрос как определить открыт connect или нет .
Хорошо когда не знаеш да еще забудеш !!!!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 27.09.2007 (Чт) 12:05

Проверять свойство State.
Lasciate ogni speranza, voi ch'entrate.

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 27.09.2007 (Чт) 12:29

СПС все заработало :lol: А может кто подскажет как узнать как идут связи таблиц в paradox .
Хорошо когда не знаеш да еще забудеш !!!!

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 27.09.2007 (Чт) 14:27

[quote SKYS]связи таблиц в paradox [/quote]
а такое разве существует?

ЗЫЖ
помню в ДБФ для установления связей ВСЕГДА надо было давать команду SET RELATION ...TO ...и это действовало только во время работы этой программы и информация о связях нигде не хранилась

вероятно здесь тоже так
I Have Nine Lives You Have One Only
THINK!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 27.09.2007 (Чт) 14:31

попробуй забить на вб и сделать все это в дельфи. искренне тебе рекомендую
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 28.09.2007 (Пт) 3:36

Денис писал(а):попробуй забить на вб и сделать все это в дельфи. искренне тебе рекомендую
Я работаю над программой уже более 2 месяцев она почти завершена , и переписывать её на delphi займет много времени (При условии что я знаю delphi не то что бы плохо но и не отлично) . А тут просто необходимо подцепить эти базы , а выторку необходимо делать с нескольких таблиц вот я и задал вопрос про связи узнать стоитли пробовать sql запрос для связанных таблиц
Хорошо когда не знаеш да еще забудеш !!!!

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 28.09.2007 (Пт) 7:48

У меня как-то была похожая проблемка. Я ее решал с помощью Access, путем линковки таблиц. А потом уже работал с *.mdb.
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 28.09.2007 (Пт) 7:53

SergT
О да! Я тоже... Обидно только, что не все таблици линкуются в mdb
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

SKYS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 21.09.2007 (Пт) 8:31
Откуда: г.Кемерово

Сообщение SKYS » 28.09.2007 (Пт) 9:08

SergT писал(а):У меня как-то была похожая проблемка. Я ее решал с помощью Access, путем линковки таблиц. А потом уже работал с *.mdb.

А линковал Програмно или руками
Хорошо когда не знаеш да еще забудеш !!!!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 29.09.2007 (Сб) 15:03

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


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

    TopList