powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выборка из двух DBF-файлов Visual Basic
25 сообщений из 27, страница 1 из 2
Выборка из двух DBF-файлов Visual Basic
    #36650830
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой код на Visual Basic 6.0:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
conn.Open "DBQ=" & App.Path & ";Driver={Microsoft dBase Driver (*.dbf)}; FIL=dBase4.0"
Dim sSQL As String
sSQL = "SELECT [namefile] FROM FTPNEW WHERE [namefile] Not In (Select [namefile] FROM FTPOLD)"
rs.Open sSQL, conn, adOpenStatic, adLockOptimistic
При открытии рекордсета вылазит сообщение об ошибке: [Microsoft][Драйвер ODBC dBase] Слишком мало параметров. Требуется 1. Менять строки подключения и параметры открытия рекордсета ни к чему не привели.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650878
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gaiver23,

А если так запрос переделать?
Код: plaintext
1.
2.
SELECT [namefile] FROM FTPNEW
LEFT JOIN FTPOLD ON FTPNEW.[namefile]=FTPOLD.[namefile]
WHERE IsNull(FTPOLD.[namefile])
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650894
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Нет теперь другое сообщение: [Microsoft][Драйвер ODBC dBase] Слишком мало параметров. Требуется 3.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650898
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gaiver23,

А вы уверены, что FTPNEW и FTPOLD - это таблицы?
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650903
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;

2.

Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\mydbpath;

3.

Driver={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;


выбирайте варианты подключений
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650907
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProGaiver23,

А вы уверены, что FTPNEW и FTPOLD - это таблицы?

Конечно, это два dbf-файла. Другие запросы с рекордсетами работают великолепно.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650922
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gaiver23Конечно, это два dbf-файла. Другие запросы с рекордсетами работают великолепно.

Не знаю, где у dBase хранятся параметрические запросы, такое ощущение, что вы пытаетесь выбрать не из таблиц.
Просто
Код: plaintext
SELECT [namefile] FROM FTPNEW
работает?
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650924
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One1.

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;

2.

Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\mydbpath;

3.

Driver={Microsoft dBase Driver (*.dbf)};datasource=dBase Files;


выбирайте варианты подключений

Любая из этих строк порождает тоже самое сообщение об ошибке.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650930
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProGaiver23Конечно, это два dbf-файла. Другие запросы с рекордсетами работают великолепно.

Не знаю, где у dBase хранятся параметрические запросы, такое ощущение, что вы пытаетесь выбрать не из таблиц.
Просто
Код: plaintext
SELECT [namefile] FROM FTPNEW
работает?

Да, работает.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650937
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
SELECT [FTPNEW].[namefile] 
FROM 
    [FTPNEW] LEFT OUTER JOIN [FTPOLD] 
         ON [FTPNEW].[namefile] = [FTPOLD].[namefile]
WHERE 
    [FTPOLD].[namefile] IS NULL
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650942
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицы в студию :)
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650947
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Код: plaintext
1.
2.
3.
4.
5.
SELECT [FTPNEW].[namefile] 
FROM 
    [FTPNEW] LEFT OUTER JOIN [FTPOLD] 
         ON [FTPNEW].[namefile] = [FTPOLD].[namefile]
WHERE 
    [FTPOLD].[namefile] IS NULL


Ошибка: [Microsoft][Драйвер ODBC dBase] Слишком мало параметров. Требуется 2.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650951
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
SELECT [namefile] FROM FTPNEW
LEFT JOIN FTPOLD ON FTPNEW.[namefile]=FTPOLD.[namefile]
WHERE IsNull(FTPOLD.[namefile])
Здесь он ругнётся на неоднозначность поля namefile, т.к. это поле есть в двух таблицах
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650952
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте Microsoft Visual FoxPro драйвер
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650954
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SashaMТаблицы в студию :)

Таблицы до безобразия просты. Одно поле NAMEFILE c типом Character(128)
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650959
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaM
Код: plaintext
1.
2.
SELECT [namefile] FROM FTPNEW
LEFT JOIN FTPOLD ON FTPNEW.[namefile]=FTPOLD.[namefile]
WHERE IsNull(FTPOLD.[namefile])
Здесь он ругнётся на неоднозначность поля namefile, т.к. это поле есть в двух таблицах

Согласен
Код: plaintext
SELECT FTPNEW.[namefile]....
но ругается-то он пока на другое...
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650960
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
SELECT [namefile] 
FROM FTPNEW 
WHERE NOT [namefile] IN (
Select [namefile] FROM FTPOLD GROUP BY [namefile]
)


а так?
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650965
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gaiver23,
Если ты SQL запрос кидаешь в несколько строк, то разделитель ;, так же есть ограничение на длину sql запроса, и лучше покажи код, не прячь
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650987
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Код: plaintext
1.
2.
3.
4.
SELECT [namefile] 
FROM FTPNEW 
WHERE NOT [namefile] IN (
Select [namefile] FROM FTPOLD GROUP BY [namefile]
)


а так?

Ошибка остается. У меня вот была такая проблема с обычным Select * FROM таблица. И тоже ругался на открытии рекордсета, проблема решилась заменой строки подключения. Но даже эта строка подключения в этом запросе не работает. Еще заметил, что если приравнять строку подключения и при ошибке распечатать эту строку - выдается другая строка.
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650992
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gaiver23Shocker.ProGaiver23Конечно, это два dbf-файла. Другие запросы с рекордсетами работают великолепно.

Не знаю, где у dBase хранятся параметрические запросы, такое ощущение, что вы пытаетесь выбрать не из таблиц.
Просто
Код: plaintext
SELECT [namefile] FROM FTPNEW
работает?

Да, работает.

а
Код: plaintext
SELECT [namefile] FROM FTPOLD
?
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36650994
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже посоветовал использовать VFP драйвер
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36651023
Mashinist-Ilyasov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот вы боты...
Да я такие запросы на своем Nokio 6230 писал...
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36651033
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mashinist-Ilyasov,

Nokio? Вас обманули
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36651047
Gaiver23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть проблема в том, что я программно создаю из Visual Basic все эти таблицы, может их создавать как то по особенному надо? Вот код моего создания:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Function CreateDBFTemplate(sDBFName As String) As Boolean
Dim sPath As String

'===== Путь к DBF
sPath = App.Path & "\"

If Dir(sPath & "\" & sDBFName & ".dbf") = "" Then
    Dim conn As New ADODB.Connection
    conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & ";User ID=Admin;Password=;Extended Properties=dBase IV")

    '===== Создаем DBF
    conn.Execute "create table " & sDBFName & "(namefile char(128))"
    conn.Close

    Set conn = Nothing
    CreateDBFTemplate = True
Else
    CreateDBFTemplate = False
End If
End Function
...
Рейтинг: 0 / 0
Выборка из двух DBF-файлов Visual Basic
    #36651076
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gaiver23,

С этим кодом всё ОК. Таблица создаётся правильная
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выборка из двух DBF-файлов Visual Basic
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]