Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка BDE или что?


chum ©   (2003-06-30 10:56:00) 

Выполняю запрос:

insert into table1.db
(name)
select distinct s1_v3 as name
from table2.dbf
where not s1_v3 in
(
select name
from table1.db
)
После выролняю:

select distinct s1_v3 as name
from table2.dbf
where not s1_v3 in
(
select name
from table1.db
)
По логике не должно выбираться ни каких записей, а выбираются все записи из table2.dbf. name - это строковое поле. Записи - русскими буквами. BDE настроен так, что в SQL-explorer буквы отображаются корректно. Не подскажете как быть?


Johnmen   (2003-07-01 13:43:00) [1]

Попробуй следующее :
- даблклик на Database1 -> указываем алиас -> жмем Defaults -> выставляем LANGDRIVER для переопределения
- то же самое для Database2 с тем же LANGDRIVER
- выполняем тестовый запрос


chum   (2003-07-01 13:15:00) [2]

100 раз проверял, но толку никакого. Все дело в BDE. Где-то ошибка


Johnmen   (2003-06-30 17:14:00) [3]

См.настройки алиасов - установка языкового драйвера.


chum   (2003-06-30 17:04:00) [4]

Если первая таблица пуста, то в неё попадают все записи из второй, а если выполнить запрос дважды, то всё записи удвоятся.
во второй таблице простро текстовые строки на русском языке.
мне кажктся всё дело в том, что таблицы разные (dbase и paradox).
Если создать paradox таблицы с такими же полями как и во второй, и выполнить запрос, то всё работает как надо. Но это не очень удобно


Johnmen   (2003-06-30 12:18:00) [5]

А после инсерта что в таблице 1 ?
И что во второй на момент тестового запроса ?


chum   (2003-06-30 12:13:00) [6]

Мой вариант не содержит ошибки, но попробовал ваш вариант, ничего не изменилось. Такое впечатление, что при обработке запроса, строки сравниваются без использования драйвера кодировки.


bushmen   (2003-06-30 11:43:00) [7]

А с чего ты решил, что не доолжно выбираться ни одной записи?
А есди запрос переписать так: "where s1_v3 not in"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо