С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 47

Обновить поле blob в interbase

25.10.2023, 14:56. Показов 1308. Ответов 10

Студворк — интернет-сервис помощи студентам
Добрый день пытаюсь обновить blob поле в interbase
Python
1
2
3
4
5
6
]
f = open (text.txt, 'rb')
Text = f.read()
Cur = con.cursor()
Cur.execute("update name_table set name_blob_pole = ? Where id = ?", (Text,  43))
con.commit()
Выдает
ошибку error while preparing SQL statement и т.д.
Есть предположение что данные выглядят в в виде b'\xef\xf0\...' и это не нравится компилятору
Подскажите в чем проблема может кто знает
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2023, 14:56
Ответы с готовыми решениями:

Обновить поле blob файлом из формы
Написал код, выполняется без ошибок, но не обновляет Ж(( <% server.scripttimeout=50000 i=request.binaryread(Request.TotalBytes) ...

работа с BLOB в InterBase, запись в BLOB размером более 32 кБ
почему-то не проходит запись в BLOB размером более 32 кБ. научите кто-нибудь. Язык - PHP. Записываю код вот так: if...

Как скопировать содержимое BLOB поля одной записи в BLOB поле другой?
Как скопировать содержимое BLOB поля одной записи в BLOB поле другой?

10
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
26.10.2023, 00:38
Цитата Сообщение от Dan49 Посмотреть сообщение
Выдает
ошибку error while preparing SQL statement и т.д.
1) error while preparing SQL statement это обобщенное сообщение, обычно в и т.д. указывается, что именно пошло не так.
2) хорошо бы было узнать какая библиотека используется для работы с БД
Цитата Сообщение от Dan49 Посмотреть сообщение
Есть предположение что данные выглядят в в виде b'\xef\xf0\...' и это не нравится компилятору
данные так выглядят только на вашем экране, перфикс b говорит, что это массив байтов.
0
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 47
26.10.2023, 02:20  [ТС]
Библиотеку использую interbase
Python
1
import interbase
Я думаю что то в запросе sql ему не нравится
Нашел в документации по interbase. https://docwiki.embarcadero.co... _Blob_Data как обновлять blob но особо не понял

Добавлено через 17 минут
Вот нашел пример но у меня он тоже не работает, также ошибка
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import fdb
 
con = fdb.connect(dsn='localhost:/temp/test.db', user='sysdba', password='pass')
curScroll = con.cursor()
curUpdate = con.cursor()
 
curScroll.execute("select city from addresses for update")
curScroll.name = 'city_scroller'
update = "update addresses set city=? where current of " + curScroll.name
 
for (city,) in curScroll:
    city = text # make some changes to city в моем случае city равно text
    curUpdate.execute( update, (city,) )
 
con.commit()
Не понимаю в чем проблема
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
26.10.2023, 11:26
https://github.com/Embarcadero... /tree/main в проекте есть папка docs конкретно для этой библиотеки.
...docs/usage-guide.html#working-with-blobs
Interbase uses two types of BLOB values:
- Materialized BLOB values are Python strings. This is the default type.
- Streamed BLOB values are file-like objects.
Соответственно для первого варианта нужно пихать обычные строки
Python
1
2
3
4
# --- Materialized mode (str objects for both input and output) ---
# Insertion:
cur.execute("insert into blob_test values (?)", ('abcdef',))
cur.execute("insert into blob_test values (?)", ('ghijklmnop',))
Во втором, если данные в памяти оборачивать в StringIO, если данные для поля хранятся в файле, пихать сам файл
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os.path
from cStringIO import StringIO
 
import interbase
...
# --- Streaming mode (file-like objects for input; interbase.BlobReader objects for output) ---
 
# Insertion:
cur.execute("insert into blob_test values (?)", (StringIO('abcdef'),))
cur.execute("insert into blob_test values (?)", (StringIO('ghijklmnop'),))
 
f = file(os.path.abspath(__file__), 'rb')
cur.execute("insert into blob_test values (?)", (f,))
f.close()
0
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 47
27.10.2023, 02:33  [ТС]
Если через параметры
Python
1
2
cur.execute("Update name_table set name column = ? Where id=?", (1, 'ffggghhh'))
con.commit()
то Выдает ошибку
OSError: exception: access violation reading
Если вот так
Python
1
2
cur.execute("Update name_table set name column = 'ffgggghhh' Where id=1")
con.commit()
То всё проходит, в чем может быть проблема?
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
27.10.2023, 09:32
Как минимум, в первом варианте параметры передаются в обратном порядке от второго.
0
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 47
30.10.2023, 12:03  [ТС]
Да согласен, поменял местами ошибка всё равно таже

Добавлено через 26 минут
Да у меня еще вопрос по русскому тексту, хочу file txt с русской речью в blob запихать, не получается , латинские воспринимает, кириллицу нет - непонятные символы какие то выходят
0
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 47
30.10.2023, 14:19  [ТС]
Вот фото ошибок, в самом драйвере
Миниатюры
Обновить поле blob в interbase  
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
01.11.2023, 13:23
Цитата Сообщение от Dan49 Посмотреть сообщение
латинские воспринимает, кириллицу нет - непонятные символы какие то выходят
Выходят где? В какой кодировке сохранялся файл, какая кодировка установлена в IB?
Цитата Сообщение от Dan49 Посмотреть сообщение
то Выдает ошибку
OSError: exception: access violation reading
Вот тут прям хз Единственно нашел в доке
Parameterized statements also have some limitations. Currently:
- DATE, TIME and DATETIME values must be relevant datetime objects.
- NUMERIC and DECIMAL values must be decimal objects.
Попробуйте id'шник к Decimal преобразовать и в запрос подставить. Крайний случай попробовать разные версии библиотеки, если доступны.
0
0 / 0 / 0
Регистрация: 24.03.2021
Сообщений: 47
10.11.2023, 04:42  [ТС]
Сделал но все равно не работает
0
 Аватар для kazak
3601 / 2742 / 355
Регистрация: 11.03.2009
Сообщений: 6,300
12.11.2023, 13:14
Учитывая, что библиотека относительно новая 05.08.23, возможно и баг. Тут только issue на гитхабе создавать разрабам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2023, 13:14
Помогаю со студенческими работами здесь

BLOB поля в Interbase?
Вот я добавил фотографию в BLOB поле таким способом procedure TForm1.Button1Click(Sender: TObject); var jpeg: TJPEGImage; ...

Builder C++ VCL InterBase Memo(BLOB) поля
Приветствую. Вот столкнулся с проблемкой. По работе с BLOB полями. У меня есть база и таблица с BLOB полем. оно SUB_TYPE 1. Есть...

Нарушение целостности информации при попытке обновить данные в BLOB-e Oracle-a
Pri popitke update-a dannix xranyasixsya v BLOB-e Oracle-a voznikaet narushenie celostnosti informacii: nevozmozno stanovitsya chtenie...

Автоматически обновить поле в форме при добавлении нового значения в поле со списком
помогите плииииз, у меня форма в ней поля: код(счетчик); фамилия(текст); профессия(подстановка из таблицы "профессия");...

blob поле
Здравствуйте ! немного непонятно с blob полями.. Пусть есть БД с несколькими таблицами. (см. РИС). КАК мне добавить blob поле и номер...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru