Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Неправильный поиск Добавлено: 21.08.06 21:48  

Автор вопроса:  SerJ
VB6+MySQL Server
Короче такая вот фиКня получилась.... Делаю запрос, используя несколько таблиц. Выборку делаю ч/з LIKE:

mSQL.DataSource="SELECT ORGANISATIONS.NAME AS NAME, ORGANISATIONS.PHYSADDR1 AS PHYSADDR, ORGANISATIONS.PHONEFAX AS PHONEFAX, OGRANISATIONS.RATING AS RATING FROM ORGANISATIONS, WARES, PRICES WHERE PRICES.ORG_ID=ORGANISATIONS.ID AND PRICES.WARES_ID=WARES.ID AND WARES.NAME LIKE ""%" & txtSrch.Text & "%"" ORDER BY ORGANISATIONS.RATING DESC"
mSQL.Refresh
'..... code goes here

Результат - вывод записей НЕ содержащих сроку в текстбоксе txtSrch, хотя записи, которые включают эту строку, тоже есть
Не понял прикола вААще.
Когда беру вместо LIKE знак равенства (хотя это мне не нужно), то все пашет, как надо. Как только беру LIKE с использованием маски поиска (эт типа "%фирма%") - начинается лажа.... Может кто решал подобные траблы?...

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 22.08.06 00:18
Вопрос на сообразительность, что будет если я в txtSrch введу
""; DELETE FROM Organisations --


Вообще меня смущает факт использования двойных кавычек для указания параметра Like, попробуй одинарные использовать.

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 22.08.06 04:58
Вы выборку из 3-х таблиц делаете.. Может быть стОит более корректно
заавать зависимости между ними? Ну там "INNER JOIN" к примеру...

Ответить

Номер ответа: 3
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #3 Добавлено: 29.08.06 00:40
Вопрос на сообразительность, что будет если я в txtSrch введу

""; DELETE FROM Organisations --

Хм, это конечно интересно.... А как тогда с такими бороться? Перебирать SQL-слова?

Вообще меня смущает факт использования двойных кавычек для указания параметра Like, попробуй одинарные использовать.


Меня смущает тоже, но если попадется слово с апострофом (база-то на украинском языке)?

Вы выборку из 3-х таблиц делаете.. Может быть стОит более корректно
заавать зависимости между ними? Ну там "INNER JOIN" к примеру...

Я начинающий по отношению к базам данных. В хелпе, котором я читал не понятно написано (по крайней мере для меня) :)
Объясните кто-то, как работать с таблицами, используя INNER JOIN и подобное....

Ответить

Номер ответа: 4
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #4 Добавлено: 29.08.06 05:04
Заменяй все одинарные кавычки двумя одинарными.
Если не ошибаюсь (меня могут поправить) этого будет достаточно...

Ответить

Номер ответа: 5
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #5 Добавлено: 30.08.06 21:07
ok. я попробую, но вряд ли это поможет в решении траблы. Но всё равно спасибо

Ответить

Номер ответа: 6
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #6
Добавлено: 06.09.06 15:40

Вы выборку из 3-х таблиц делаете.. Может быть стОит более корректно
заавать зависимости между ними? Ну там "INNER JOIN" к примеру..


А это в принципе тоже самое - просто в BOL написано что это старый сиснтаксис а в postgreSQL наоборот :)

В mySQl есть несколько операторов типа LIKE в том числе и с регекспами ими будет удобнее пользоваться...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам