Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 11, 2013 18:16:16

_visor_
Зарегистрирован: 2013-04-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

Доброго времени суток!
Вопрос такой, возможно ли использовать LIKE в SELECT при использовании pyodbc? ()
пример:
d=input()
….
('select a,b,c from db where c like', d)

к базе и таблице цепляется, а выполнять select не хочет…
есть необходимость проверить вхождение ‘d’ в ‘c’

Офлайн

#2 Апрель 11, 2013 23:25:45

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

По идее все команды должны отрабатывать, какую ошибку выдает?

Офлайн

#3 Апрель 12, 2013 05:18:46

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

_visor_
('select a,b,c from db where c like', d)
Если это ваш запрос, то в нем ошибка



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Апрель 12, 2013 08:59:08

_visor_
Зарегистрирован: 2013-04-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

PooH
а в чем я ошибся?
использую pyodbc т.к. база на MSSQL. а Pyton 3.х.
почитал мануал pyodbc, ссылок на LIKE совсем не нашел. на форумах тоже нет. может синтаксис не верен? хотя без LIKE прямой запрос к базе …where c=?',d… проходит.

Офлайн

#5 Апрель 12, 2013 09:08:27

_visor_
Зарегистрирован: 2013-04-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

o7412369815963
тут я не совсем понял какого параметра ему не хватает..
pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 1 parameters were supplied', ‘HY000’)

Офлайн

#6 Апрель 12, 2013 11:07:49

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

_visor_
а в чем я ошибся?
В синтаксисе использования LIKE. Должны быть кавычки. См. справку по SQL.



Офлайн

#7 Апрель 12, 2013 14:04:11

_visor_
Зарегистрирован: 2013-04-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

решение немного удивило :-))
('select a,b,c from db where c like ?', d)
и все заработало……
все равно всем спасибо!!

Офлайн

#8 Апрель 12, 2013 14:27:12

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

_visor_
решение немного удивило :-))
Ничего удивительного.
В документации это описано как
Question mark style, e.g. …WHERE name=?



Офлайн

#9 Апрель 12, 2013 14:32:58

_visor_
Зарегистрирован: 2013-04-11
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

с LIKE (=?) почему то не работает. а решение похоже не совсем корректное. оно работает, но результат неполон. странно….

Офлайн

#10 Апрель 12, 2013 15:37:24

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

проблема с select в pyodbc

Потому что синтаксис оператора LIKE отличается от синтаксиса оператора = в самом SQL.
? указывает только на местоположение параметра.
Во всем остальном должен быть соблюден синтаксис SQL.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version