1

Тема: Чому не працюють запити підкажіть будьласка.

Вбив годину часу намагаючись видобути з бази данних запис чомусь ці запити не працюють мій підсушений мозочок не може зрозуміти причини.


return(self.cursor.execute(f"SELECT * FROM location_subscribe WHERE location_id ={self.row}").fetchone()[self.column+2])

Цей видає помилку.- sqlite3.OperationalError: no such column: a1x1

return(self.cursor.execute("SELECT * FROM location_subscribe WHERE location_id =?", self.row).fetchone()[self.column+2])

А цей видає  помилку  sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 4 supplied.

За допомогою цього варіанту я вкінці-кінців получив позитивний варіант.

return(self.cursor.execute(f"SELECT * FROM location_subscribe WHERE location_id LIKE '{self.row}'").fetchone()[self.column+2])

значення self.row у всіх випадках однакове. Я за звичай користуюсь першим способом що цього разу нетак. Дякую

2

Re: Чому не працюють запити підкажіть будьласка.

f"SELECT * FROM location_subscribe WHERE location_id = '{self.row}' "

'{self.row}' - це ж стрічка

Подякували: pluszz, 221VOLT2

3

Re: Чому не працюють запити підкажіть будьласка.

leofun01 написав:

f"SELECT * FROM location_subscribe WHERE location_id = '{self.row}' "

'{self.row}' - це ж стрічка

рядок

4

Re: Чому не працюють запити підкажіть будьласка.

leofun01 написав:

f"SELECT * FROM location_subscribe WHERE location_id = '{self.row}' "

'{self.row}' - це ж стрічка

хіба не f'стрічка з форматуванням?

Подякували: leofun011

5

Re: Чому не працюють запити підкажіть будьласка.

Q-bart написав:

хіба не f'стрічка з форматуванням?

Правильно, з форматуванням. Я про те, що '' доставляти все одно треба.

FakiNyan написав:
leofun01 написав:

'{self.row}' - це ж стрічка

рядок

row - це рядок, а string - це стрічка.

Подякували: koala, pluszz, 221VOLT3

6

Re: Чому не працюють запити підкажіть будьласка.

leofun01 написав:
Q-bart написав:

хіба не f'стрічка з форматуванням?

Правильно, з форматуванням. Я про те, що '' доставляти все одно треба.

FakiNyan написав:
leofun01 написав:

'{self.row}' - це ж стрічка

рядок

row - це рядок, а string - це стрічка.

https://uk.wikipedia.org/wiki/%D0%A0%D1 … 0%BE%D0%BA

7

Re: Чому не працюють запити підкажіть будьласка.

row це ряд
string це рядок

8

Re: Чому не працюють запити підкажіть будьласка.

SELECT * FROM

А ще чув як мудрі люди казали, що завжди потрібно вказувати явно перелік потрібник колонок замість зірочки.

SELECT column1, column2 FROM
Подякували: pluszz, 221VOLT2

9

Re: Чому не працюють запити підкажіть будьласка.

Прихований текст
ur_naz написав:

row це ряд
string це рядок

Ясно

Подякували: wander, 221VOLT2

10

Re: Чому не працюють запити підкажіть будьласка.

Чому дорівнюють self.row і self.column?

frz написав:

А ще чув як мудрі люди казали, що завжди потрібно вказувати явно перелік потрібник колонок замість зірочки.

Завжди - не завжди, а от якщо нам потрібне лише одне поле, то запитувати треба саме його. В магазині ж ніхто не каже "дайте мені всю полицю, щоб я з неї взяв потрібну банку", правда? Так і тут - варто запитувати один елемент, а не все, а потім шукати потрібне.

FakiNyan написав:

рядок

Line of code - рядок коду.
Table row - рядок таблиці.
String - особисто я вживаю "стрічка", бо, по-перше, менше плутанини, а по-друге, є (випадкова) співзвучність. Загалом string тут - це як нитка намиста, щось, на що "надіті" символи. "Рядок символів" гірше передає цей сенс. Та й сучасні словники фіксують таке значення: https://e2u.org.ua/s?w=%D1%81%D1%82%D1% … r_lines=on - зверніть увагу на Мейнеровича та Рицара. Хоча основним все одно подається "рядок".
Ряд - це щось вишикуване вздовж однієї лінії, але не сама лінія. В деяких випадках це row. Або file. Чи навіть number.

Подякували: leofun01, 221VOLT2

11

Re: Чому не працюють запити підкажіть будьласка.

FakiNyan написав:
leofun01 написав:
Q-bart написав:

хіба не f'стрічка з форматуванням?

Правильно, з форматуванням. Я про те, що '' доставляти все одно треба.

FakiNyan написав:

рядок

row - це рядок, а string - це стрічка.

https://uk.wikipedia.org/wiki/%D0%A0%D1 … 0%BE%D0%BA

Вікі-стаття наводить там слово «стрічка» як синонім до рядка, посилаючись на СУМ-11, в якому, однак, «стрічка» в цьому значенні йде з приміткою «застаріле» (і то ще було в 70-х роках минулого століття). Навряд чи українські комп'ютерники глибоко поринали в тексти української класики, тому, боюсь, string=стрічка було скальковано безпосередньо з російської «строчки» десь приблизно в часи Азіріва.

Якщо ж називати string стрічкою, то як назвати те, що російською називається «лента» (якщо це слово на літературну українську перекладається як «стрічка»)?

12

Re: Чому не працюють запити підкажіть будьласка.

P.Y. написав:

Вікі-стаття наводить там слово «стрічка» як синонім до рядка, посилаючись на СУМ-11, в якому, однак, «стрічка» в цьому значенні йде з приміткою «застаріле» (і то ще було в 70-х роках минулого століття).

Ну, якщо ви не в курсі, то СУМ-11 ліпив "застаріле" на все питомо українське; але конкретно тут, ясно, мова йде про типографічну термінологію, а не комп'ютерну.

P.Y. написав:

Навряд чи українські комп'ютерники глибоко поринали в тексти української класики, тому, боюсь, string=стрічка було скальковано безпосередньо з російської «строчки» десь приблизно в часи Азіріва.

Російське "строчка" має два значення, тут калькування немає. "8-а стрічка коду" - так не скажеш. До речі, російською, наскільки я розумію, "строка кода" і "строчка кода" - синоніми, але тип змінної - лише "строка", тобто калькування узагалі немає.

P.Y. написав:

Якщо ж називати string стрічкою, то як назвати те, що російською називається «лента» (якщо це слово на літературну українську перекладається як «стрічка»)?

Очевидно, теж стрічкою. Що ж поробиш - тут величезна купа різних понять позначається невеликою кількістю слів, усе одно будуть накладки. Ви знаєте, як англійською вертикалі шахівниці називають?

Подякували: leofun01, 221VOLT, Torbins3

13

Re: Чому не працюють запити підкажіть будьласка.

для P.Y.
P.Y. написав:

те, що російською називається «лента»

От так взяли і віддали ленту росіянам. А виявляється ...

Подякували: 221VOLT1

14

Re: Чому не працюють запити підкажіть будьласка.

Ну, якщо ви не в курсі, то СУМ-11 ліпив "застаріле" на все питомо українське; але конкретно тут, ясно, мова йде про типографічну термінологію, а не комп'ютерну.

Бачите, проблема в тому, що правомірність «стрічки» в значенні «рядок» вікіпедія доводить з допомогою лише СУМ-11 — інших джерел нема (крім тих, звичайно, на які посилається сам СУМ-11). Визначати питомість слова виключно за тим, що воно не сподобалось Білодіду? Ну-ну.

Якщо виходити з того, в чому зазвичай звинувачують Білодіда, йому було б варто зробити саме стрічку тексту (як більш подібну до російського відповідника) основною назвою цього поняття, а рядок тексту відправити в архаїзми. Якщо «стрічка тексту» при цьому ще й питома (а не задавнена калька, що дуже ймовірно), це взагалі скарб для русифікатора. А ще відкривається перспектива перетворити «стрічку» на «строчку»... Проте, в даному випадку, «застарілим» стало слово, більш придатне для зближення мов, а загальнонормативним — несхоже на російський відповідник. Де логіка?! Логічніше вже припустити, що «стрічка тексту» була настільки маловживаною, що й Білодід на неї не спокусився.

Судячи з того, що всі дитячі та шкільні роки на стрічки з літер (а не тканини чи паперу) у книжках (а читав їх чимало) я не натрапляв, а вперше з ними зіткнувся, десь аж коли на цей форум прийшов (чи трохи раніше) — таки азірівка.

leofun01 написав:
для P.Y.
P.Y. написав:

те, що російською називається «лента»

От так взяли і віддали ленту росіянам. А виявляється ...

Ви ж розумієте, що трофейний кулемет зазвичай не комплектувався літредактором, який би на льоту міняв бридкі москальські лєнти на ріднесенькі стрічки?

Подякували: 221VOLT1

15

Re: Чому не працюють запити підкажіть будьласка.

Всім дякую.

return(self.cursor.execute(f"SELECT {column}, location_id='{self.row}' FROM location_subscribe ").fetchone()[0])
Подякували: 221VOLT, leofun012

16

Re: Чому не працюють запити підкажіть будьласка.

Білодід також відправляв у застаріле "зайві" слова, яких не було в російській мові, щоб уможливити переклади 1:1.
Ну і ви ж не ту сторінку Вікі дивитеся: https://uk.wikipedia.org/wiki/Рядок_(програмування)

Подякували: leofun011

17

Re: Чому не працюють запити підкажіть будьласка.

pluszz написав:

Всім дякую.

return(self.cursor.execute(f"SELECT {column}, location_id='{self.row}' FROM location_subscribe ").fetchone()[0])

По-перше, ви передаєте неекрановані дані. Колись у вас трапиться маленький Боббі Тейблз.

англійська

https://imgs.xkcd.com/comics/exploits_of_a_mom.png

По-друге, ви запитуєте два стовпчики, один з яких - константа, а потім берете лише перший. Це нагадує розважальні математичні фокуси (скажи свій вік, помножений на два, і я здогадаюся, скільки тобі років), але навряд чи має якийсь сенс. Особливо якщо column - число, бо тоді ви саме це число і отримуєте.

Подякували: pluszz, 221VOLT, leofun01, Torbins4

18 Востаннє редагувалося pluszz (12.01.2020 09:32:04)

Re: Чому не працюють запити підкажіть будьласка.

koala написав:

По-друге, ви запитуєте два стовпчики, один з яких - константа, а потім берете лише перший. Це нагадує розважальні математичні фокуси (скажи свій вік, помножений на два, і я здогадаюся, скільки тобі років), але навряд чи має якийсь сенс. Особливо якщо column - число, бо тоді ви саме це число і отримуєте.

Тоді, як я маю получити значення з стовбчика column з запису в котрім в стовбчику location_id записане значення self.row. Дякую.

Подякували: 221VOLT1

19 Востаннє редагувалося koala (12.01.2020 09:25:17)

Re: Чому не працюють запити підкажіть будьласка.

pluszz написав:

Тоді, як я маю получити значення з стовбчика column з запису вкотрі м в стовбчику location_id записане значення self.row. Дякую.

Для початку я б відповів на питання, які тут вище ставили. Я, наприклад.
До них додається питання, чому дорівнює column.

20

Re: Чому не працюють запити підкажіть будьласка.

koala написав:

.
До них додається питання, чому дорівнює column.

column = "status_"+str(self.column)
Подякували: 221VOLT1