powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / BLOB python3 fdb
2 сообщений из 2, страница 1 из 1
BLOB python3 fdb
    #39522928
CraMas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
господа, такая проблема:
есть база, в ней хранятся фотки пользователей в одной из табличек
код пишу на питоне, но думаю проблем тут не должно быть

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
import fdb
con = fdb.connect(
    host='localhost', database='C:\db.gdb',
    user='sysdba', password='masterkey'
  )

cur = con.cursor()


SQL = "select * from photos_big"

cur.execute(SQL)

for (cli_n, photo) in cur:
    if cli_n == 10:
        filename = 'C:\\'+str(cli_n)+'_big.jpg'
        f2 = open(filename, 'wb')
        f2.write(photo)
        f2.close()
con.commit()
cur.close()
con.close()




этот код работает на ура.
а вот как записать в базу я не понимаю(((

вставляю кусок формирования запроса.

Код: python
1.
2.
3.
4.
5.
6.
7.
f2 = open(filename167n, 'rb')
photo = f2.read()
f2.close()

SQL = "insert into PHOTOS(CLI_N, PHOTO) Values((%s,%s)" % ('3', photo)

cur.execute(SQL)



и в момент cur.execute(SQL) вылетает ошибка.
я конечно понимаю что пихать в таком виде бинарные данные не лучший вариант, и поэтому наверное это и не работает

подскажите плз, как записать BLOB в поле

заранее огромное спасибо всем кто откликнется
...
Рейтинг: 0 / 0
BLOB python3 fdb
    #39522935
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?
Код: python
1.
2.
3.
4.
5.
f2 = open(filename167n, 'rb')
SQL = "insert into PHOTOS(CLI_N, PHOTO) Values(?, ?)"
cur.execute(SQL, (3, f2))

# и закрыть все конечно же



Вот тут https://www.firebirdsql.org/file/documentation/drivers_documentation/python/fdb/usage-guide.html#executing-sql-statements сказали
авторYou may pass BLOB values as open file-like objects, and FDB will handle the transfer of BLOB value.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / BLOB python3 fdb
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]