Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.10.25;
Скачать: CL | DM;

Вниз

SQL в BDE   Найти похожие ветки 

 
Aybolit   (2011-05-17 12:06) [0]

Мне нужно выбрать из таблицы значения по 2 условиям.
Запрос выглядит вот так

SELECT * FROM PRS WHERE
PRS."Код заявки" = "КЛ01"
AND PRS."Номер" = "123 "

Он ни чего не возвращает. Но!!! если делать так
SELECT * FROM PRS WHERE
PRS."Номер" = "123 "

и вот так

SELECT * FROM PRS WHERE
PRS."Код заявки" = "КЛ01"

то в обоих случаях требуемая мне запись присутствует в возвращаемых запросом записях Решил извратиться и сделать так

select *
from "1.sql" as t
where
t."Номер" = "123 "

в 1.sql записал
SELECT * FROM PRS WHERE
PRS."Код склада" = "КЛ01"

и о чудо работает! Сделал через файл потому, что не BDE не понимает такое

select *
from (
SELECT * FROM PRS WHERE
PRS."Код склада" = "КЛ01"
) as t
where
t."Номер" = "123 "

Так вот! почему так?! Все бы худо бедно сошло, но мне нужно выполнить "DELETE FROM". Запросы с двумя условиями и более, с другими столбцами работают нормально, без извращений.
Уточнения: имена столбцов написаны на кириллице и с еще одним полем являются составным ключом. Парадокс версии 4


 
Ega23 ©   (2011-05-17 12:27) [1]


> то в обоих случаях требуемая мне запись присутствует в возвращаемых
> запросом записях

Ты в этом уверен?
Дело в том, что помимо видимых символов "123" в строке могут невидимые присутствовать. Например, #5. Штук так 100. И строка "123"#5#5#5#5#5#5 совсем не равна строке "123". А строка "123" не равно строке "123 ".
Это один из факторов, почему не стоит делать ключевыми строковые поля.


 
Anatoly Podgoretsky ©   (2011-05-17 12:29) [2]

> Aybolit  (17.05.2011 12:06:00)  [0]

Наверно нет таких записей где оба поля присутствуют одновременно.
Приведи пример данных


 
Aybolit   (2011-05-17 13:03) [3]

Ega23
на счет символов. Там все нормально я запрос писал в SQL explorer"е "123" писал вручную.

Anatoly Podgoretsky
Там одна запись, просто выбирается по вум столюцам.

>  Но!!! если делать так
> SELECT * FROM PRS WHERE
> PRS."Номер" = "123 "
>
> и вот так
>
> SELECT * FROM PRS WHERE
> PRS."Код заявки" = "КЛ01"
>
> то в обоих случаях требуемая мне запись присутствует в возвращаемых
> запросом записях

так же работает


 
Aybolit   (2011-05-17 13:04) [4]

на названия полей не смотрите это я тут законспирировать хотел да забыл)


 
Aybolit   (2011-05-17 13:15) [5]

заменил равно на like работает. но в чем разница % я в лайк не добавлял


 
Anatoly Podgoretsky ©   (2011-05-17 13:25) [6]

> Aybolit  (17.05.2011 13:03:03)  [3]

Значит категорически отказываешься показывать данные записи, ну дело твое.


 
Aybolit   (2011-05-17 14:26) [7]

КОд склада Номер
  СЦ01        123

что тут показывать то

проблему решил


 
Anatoly Podgoretsky ©   (2011-05-17 14:53) [8]

Наш человек, партнер, а не халявщик.


 
Anatoly Podgoretsky ©   (2011-05-17 14:54) [9]

Кстати по приведеным данным выборка вернет 0 строк, поскольку в первом поле данные с двумя пробелами в начале.


 
Ega23 ©   (2011-05-17 15:43) [10]


> Кстати по приведеным данным выборка вернет 0 строк, поскольку
> в первом поле данные с двумя пробелами в начале.


Он проблему решил.


 
Anatoly Podgoretsky ©   (2011-05-17 16:43) [11]

> Ega23  (17.05.2011 15:43:10)  [10]

Вот я и говорю, что он партнер.


 
Aybolit   (2011-05-17 17:07) [12]

я уж примерно данные приводил там в базе они с пробелами хранятся.
тоесть все как надо. дело было в том что когда я сравнивал допустим Имя="Коля  "(пробелы в конце)  и допустим еще одно условие Айди = 1 в этом случае он не возвращал значения. Если же использовать  в where  Имя="Коля  ", то все работает. Пришлось отказаться от пробелов. Странно как-то, подозреваю БДЕ.
А кто нибудь знает как делать вложенные запросы без применения файлов?


 
Ega23 ©   (2011-05-17 17:41) [13]


>  Странно как-то, подозреваю БДЕ.

Напрасно.


 
Германн ©   (2011-05-18 01:48) [14]


> А кто нибудь знает как делать вложенные запросы без применения
> файлов?
>

Какие?
Такие вот как у тебя в [0]?

>
> select *
> from (
> SELECT * FROM PRS WHERE
> PRS."Код склада" = "КЛ01"
> ) as t
> where
> t."Номер" = "123 "
>

Такие, имхо, никто не знает как делать. Ибо они не соответствуют формату языка SQL.
Ну а вложенные запросы соответствующие языку SQL BDE нормально поддерживает (по крайней мере на уровне LocalSQL).


> Anatoly Podgoretsky ©   (17.05.11 14:53) [8]
>
> Наш человек, партнер, а не халявщик.
>

Троешник он, а не партнер.


 
Ega23 ©   (2011-05-18 08:17) [15]


> Такие, имхо, никто не знает как делать. Ибо они не соответствуют
> формату языка SQL.


Ну ваще-то (строго говоря) - соответствуют. Но такой запрос - да, всё равно, что ковырять в носу ногой через задницу.


 
Anatoly Podgoretsky ©   (2011-05-18 08:52) [16]

> Ega23  (18.05.2011 08:17:15)  [15]

Формату LocalSQL не соответствует, его можно выполнить только через указаный
трюк. Эмуляция VIEW


 
Aybolit   (2011-05-18 09:36) [17]

Ega23 ©   (18.05.11 08:17) [15]
Я прекрасно понимаю что это "жуткие" действия
Я же так делал из за того, что БДЕ не нормально работает с пробелами в конце

Германн ©   (18.05.11 01:48) [14]

> Такие, имхо, никто не знает как делать. Ибо они не соответствуют
> формату языка SQL.
> Ну а вложенные запросы соответствующие языку SQL BDE нормально
> поддерживает (по крайней мере на уровне LocalSQL).

Как выяснилось вложенные запросы в From не поддерживаются в БДЕ(В стандарте ИСО они есть!). А в Where пожалуйста используй сколько хочешь.


 
Anatoly Podgoretsky ©   (2011-05-18 09:42) [18]

> Aybolit  (18.05.2011 09:36:17)  [17]

Нормально БДЕ работает с пробелами в конце, это просто тебе не нравится, у
тебя другие предположения о правильности, но они неправильные.


 
sniknik ©   (2011-05-18 09:54) [19]

> что БДЕ не нормально работает с пробелами в конце
также как MSSQL например если поле типа char, с varchar по другому, но вот проблема в BDE Paradox нет varchar...

другие базы/движки работают с char (из известных мне Accecc, FB, Informix, Foxpro (то что уже базой а не файлами)) также аналогично.

т.что поменяй у себя представление о "нормальности".



Страницы: 1 вся ветка

Текущий архив: 2015.10.25;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.005 c
15-1425936604
Юрий
2015-03-10 00:30
2015.10.25
С днем рождения ! 10 марта 2015 вторник


2-1401110770
Black777
2014-05-26 17:26
2015.10.25
Динамически созданный WebBrowser


2-1400792598
Drowsy
2014-05-23 01:03
2015.10.25
Программа работает в локальной сети (Firebird).


15-1426195804
Юрий
2015-03-13 00:30
2015.10.25
С днем рождения ! 13 марта 2015 пятница


1-1333625779
@!!ex
2012-04-05 15:36
2015.10.25
OpenGL + TFrame. Как????