Садржај
3.0 SQL: Промена садржаја базе
3.2 SQL: Ажурирање података у табелама
3.3 SQL: Брисање података из табела
7.0 Библиотека Flask - пројектни задатак

Колационе секвенце

У систему SQLite Studio смо видели да се подешавањем колационе секвенце UNICODE постиже исправан поредак ниски које су записане коришћењем карактера ван табеле ASCII (пре свега латиничких и ћириличких карактера српског језика). Међутим, библиотека SQLite уграђена у програмски језик Python не пружа ту могућност и да би се у Python програмима постигао рад са овим карактерима потребно је уложити мало више труда и дефинисати функцију која ће се користити за поређење ниски. У свим програмима у наставку ћемо користити наредни блок програмског кода.

import locale
locale.setlocale(locale.LC_ALL, '')

def collate_UNICODE(str1, str2):
    return locale.strcoll(str1, str2)

db_conn = sqlite3.connect(...)
db_conn.create_collation("UNICODE", collate_UNICODE)
...

Након отварања конекције ка бази података, позива се метода create_collation којом се каже да се за све колоне за које је у SQLite бази података дефинисана колациона секвенца UNICODE за поређење ниски користи Python функција collate_UNICODE. То је функција коју сами дефинишемо и коју можемо да прилагодимо тако да ради како год то нама одговара. Пошто желимо исправно поређење ниски које садрже UNICODE карактере, употребићемо библиотечку подршку за поређење таквих ниски, која долази у облику функције locale.strcoll. Пре позива ове функције потребно је извршити локална (језичка и регионална) подешавања програма. Позивом locale.setlocale(locale.LC_ALL, '') се све врсте језичких и регионалних подешавања програма преузимају из тренутних подешавања на нивоу оперативног система. То радимо на самом почетку, одмах након увоза модула locale. Ако не желимо да зависимо од подешавања оперативног система, тада можемо експлицитно подесити да се користи српски језик и ћириличко писмо locale.setlocale(locale.LC_ALL, 'sr_RS').

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+