Thread View: pl.comp.lang.python
5 messages
5 total messages
Started by Piotr Hosowicz
Tue, 07 Apr 2009 07:28
Co oznacza to duże E przed stringiem? (Django/Psycopg2)
Author: Piotr Hosowicz
Date: Tue, 07 Apr 2009 07:28
Date: Tue, 07 Apr 2009 07:28
28 lines
1380 bytes
1380 bytes
Witam,
Nie mogę jakoś wygooglować pod hasłem prefix ani nic.
Mam tak:
from django.db import connection
(...)
cursor = connection.cursor()
sql = u'select (...) where fname ilike \'%%%(term)s%%\' '
cursor.execute(sql, params={"term": term})
Dostaję:
ProgrammingError at /people/search
BŁĄD: błąd składni w lub blisko "Szukane"
LINE 1: ...t id from people_allnewdata where fname ilike '%E'Szukane'%'...
Gdzie jest błąd? Co oznacza ta duża litera E przed stringiem?
Pozdrawiam,
Piotr Hosowicz
Re: Co oznacza to duże E przed stringiem? (Django/Psycopg2)
Author: Piotr Hosowicz
Date: Tue, 07 Apr 2009 09:34
Date: Tue, 07 Apr 2009 09:34
52 lines
2166 bytes
2166 bytes
Piotr Hosowicz wrote:
> Witam,
>
> Nie mogę jakoś wygooglować pod hasłem prefix ani nic.
>
> Mam tak:
>
> from django.db import connection
>
> (...)
>
> cursor = connection.cursor()
>
> sql = u'select (...) where fname ilike \'%%%(term)s%%\' '
>
> cursor.execute(sql, params={"term": term})
>
> Dostaję:
>
> ProgrammingError at /people/search
>
> BŁĄD: błąd składni w lub blisko "Szukane"
> LINE 1: ...t id from people_allnewdata where fname ilike '%E'Szukane'%'...
>
> Gdzie jest błąd? Co oznacza ta duża litera E przed stringiem?
Odpowiem sam sobie.
1. Nie doszedłem co oznacza to E przed stringiem w komunikacie o błędzie.
2. Błąd pochodził od psycopg2.
3. Psycopg2 samo dba o dołożenie cudzysłowów, natomiast o znaki procenta
trzeba zadbać samemu.
Tak więc mój działający kod wyglda tak:
(...)
cursor = connection.cursor()
sql = u'select id from people_allnewdata where ' \
'fname ilike %(term)s or ' \
(...)
'order by lname,nname,fname'
cursor.execute(sql, params={"term": "%"+term+"%"})
recs = cursor.fetchall()
(...)
Pozdrawiam,
Piotr Hosowicz
Re: Co oznacza to duże E przed stringiem? (Django/Psycopg2)
Author: Piotr Keplicz
Date: Tue, 07 Apr 2009 09:43
Date: Tue, 07 Apr 2009 09:43
6 lines
1111 bytes
1111 bytes
Piotr Hosowicz: > 1. Nie doszedłem co oznacza to E przed stringiem w komunikacie o błędzie. E'...' to binarne napisy w PostgreSQL. .pk.
Re: Co oznacza to duże E przed stringiem? (Django/Psycopg2)
Author: Piotr Hosowicz
Date: Tue, 07 Apr 2009 13:57
Date: Tue, 07 Apr 2009 13:57
11 lines
1228 bytes
1228 bytes
Piotr Keplicz wrote: > Piotr Hosowicz: >> 1. Nie doszedłem co oznacza to E przed stringiem w komunikacie o błędzie. > > E'...' to binarne napisy w PostgreSQL. Aha, dzięki. Pozdrawiam, Piotr Hosowicz
Re: Co oznacza to duże E przed stringiem? (Django/Psycopg2)
Author: szymon
Date: Tue, 07 Apr 2009 14:51
Date: Tue, 07 Apr 2009 14:51
15 lines
1430 bytes
1430 bytes
Dnia 2009-04-07, wto o godzinie 11:43 +0200, Piotr Keplicz pisze: > Piotr Hosowicz: > > 1. Nie doszedłem co oznacza to E przed stringiem w komunikacie o błędzie. > > E'...' to binarne napisy w PostgreSQL. > > .pk. > E'...' to nie jest napis binarny... to określenie, że w stringu są escape'owane znaczki. W napisach binarnych mogą być znaczki takie jak \\000 i dlatego musi być tam E'...', ale takie samo E' musi być np. przed wyrażeniami regularnymi w stylu: x ~ E'alamakota\n' -- szymon
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads