Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Вниз

Права записи в InterBase   Найти похожие ветки 

 
George ©   (2006-12-07 09:48) [0]

Доброго времени суток.
Имеется такая проблемка, в мою БД нужно запихать файлы т.е. BLOB поля, однако при попытке записать что-либо вылетает ошибка - БД только для чтения. Раньше все делал SQL запросами, при попытке поставить в params компонента IBDatabase параметра set_db_readonly=false ругается, что параметр не найден. Как это лечится?


 
atruhin ©   (2006-12-07 10:21) [1]

Обычно такое сообщение вылетатет если не заданы модифицирующие запросы.
Под какой учетной записью конектишься?


 
George ©   (2006-12-07 10:53) [2]

SYSDBA=masterkey =)


 
Desdechado ©   (2006-12-07 12:11) [3]

> БД только для чтения
1. файл имеет атрибут Read-only
2. у сервера нет прав на файл БД
3. у БД внутреннее свойство read-only, выставленное gfix"ом или gbak"ом


 
George ©   (2006-12-07 12:56) [4]

1. Файл не имеет атрибут только для чтения.
2. Что подразумевается у сервера нет прав на БД? В св-вах БД на сервере параметр ReadOnly стоит False.
3. Попробовал gfix -mode read_write -user sysdba -password masterkey c:\db.gdb типо вроде что-то поменял. При попытке записи опять натыкаешься "Cannot modify a read-only dataset"...

Слушайте, а может это где-то в TIBQuery искать надо?


 
Desdechado ©   (2006-12-07 13:28) [5]

> Cannot modify a read-only dataset
Это же совсем другое. Значит, не включен CachedUpdates


 
DrPass ©   (2006-12-07 13:29) [6]


> Cannot modify a read-only dataset

Дык... это совсем не "БД только для чтения". Это просто означает, что твоя компонентина вернула необновляемый набор данных. Почему? Ну, вариантов множество в зависимости от того, как и что ты там делаешь. Возможно, ты просто не прописал SQL на UPDATE


 
atruhin ©   (2006-12-07 13:34) [7]

> Значит, не включен CachedUpdates

А причем здесь CachedUpdates? Совсем из другой оперы.
Автору: ответ дан в > [1] atruhin ©   (07.12.06 10:21)

ЗЫ. Телепатор сработал! :)


 
Desdechado ©   (2006-12-07 13:42) [8]

atruhin ©   (07.12.06 13:34) [7]
Как это причем? А ты модифицирующие запросы без CachedUpdates прописываешь?
А с телепатором своим разберись, тюнингом займись... ;))


 
George ©   (2006-12-07 14:19) [9]

CachedUpdates включил - толку мало....

SQL запросами все отлично работает. Записи и добавляются и редактируются и даже удаляются. Только теперь мне надо скажем обработать такую штуку:

var Table1bitmap:TBlobField;
begin
Table1bitmap.LoadFromFile(тра-ля-ля);

после этого вылетает...


 
atruhin ©   (2006-12-07 14:33) [10]

> А ты модифицирующие запросы без CachedUpdates прописываешь?

Ну в реальных проектах нет. Зачем открытую транзакцию по пол часа держать.
А в тестовых да. Какое отношение CachedUpdates имеет к вопросу? Поподробнее можно?

> после этого вылетает...

И должно вылетать. Ты объявил переменную, Table1bitmap:TBlobField; т.е. объект и не создавая его
вызываешь методы.
Вообще сделай поиск по сайту (ключевое слово Blob) Здесь каждую неделю подобные вопросы поднимают.

ПРиведи весь код процедуры.


 
George ©   (2006-12-07 14:41) [11]

Я имел ввиду вылетает "Cannot modify a read-only dataset" ))) Оно вылетает даже если просто присвоение делать скажем Query1.FieldValue[]:="о.О";


 
George ©   (2006-12-07 15:04) [12]

Ошибку при работе с БЛОБ понял. Пробую:


procedure TForm1.Button1Click(Sender: TObject);
var
 Kartinka: TBitmap;
begin
 Kartinka := TBitmap.Create;
 try
   Query1.Insert;
   Kartinka.LoadFromFile("c:\1.bmp");
   DBImage1.Picture.Assign(Kartinka);
 finally
   Kartinka.Free;
   Query1.post;
 end;
end;

Вылетает ошибка. Экспериментируем дальше - удаляем из процедуры все, оставляем только Query1.insert, запускаем, вылетает ошибка.


 
Desdechado ©   (2006-12-07 16:43) [13]

George ©   (07.12.06 15:04) [12]
Зачем такие махинации, чтобы в кверик записать картинку?
Сразу blobfield.loadfromfile

> Вылетает ошибка
текст гадалке по почте отправил?


 
Hm...   (2006-12-07 19:28) [14]

а можно полюбопытствовать что такое blobfield и что нужно прописать чтобы оно заработало?


 
Desdechado ©   (2006-12-07 21:21) [15]

или так
Query1.Sql.Text :=
  "INSERT INTO testblob " +
  " ( " +
  "  fBlob" +
  " )" +
  " VALUES" +
  " (" +
  " :ParamBlobField" +
  ")";
Query1.ParamByName("ParamBlobField").DataType := ftBlob;
Query1.ParamByName("ParamBlobField").ParamType := ptInput;
Query1.ParamByName("ParamBlobField").LoadFromFile("MyFile",ftBlob);
Query1.ExecSql;


 
имя   (2007-01-13 13:47) [16]

Удалено модератором


 
имя   (2007-01-13 13:48) [17]

Удалено модератором


 
имя   (2007-01-13 13:48) [18]

Удалено модератором


 
имя   (2007-01-13 13:49) [19]

Удалено модератором


 
_no_name_   (2007-01-14 11:59) [20]

Если есть DBGrid связанный с Query1, то проверь у него свойство dgEditing, должно быть true


 
George ©   (2007-03-13 12:03) [21]

"dgEditing, должно быть true" не помогает, а вот

Query1.Sql.Text :=
 "INSERT INTO testblob " +
 " ( " +
 "  fBlob" +
 " )" +
 " VALUES" +
 " (" +
 " :ParamBlobField" +
 ")";
Query1.ParamByName("ParamBlobField").DataType := ftBlob;
Query1.ParamByName("ParamBlobField").ParamType := ptInput;
Query1.ParamByName("ParamBlobField").LoadFromFile("MyFile",ftBlob);
Query1.ExecSql;

Работает оч хорошо =) Спасибо всем кто откликнулся.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.034 c
15-1177661179
Sergey13
2007-04-27 12:06
2007.05.27
В Санкт-Петербурге скончался Кирилл Лавров


1-1174929830
Express
2007-03-26 21:23
2007.05.27
Как программно закрыть 1С:Предприятие?


15-1177405485
red_imp
2007-04-24 13:04
2007.05.27
Supaplex


3-1173282215
Sunders
2007-03-07 18:43
2007.05.27
Сообщение "Object not found" при работе с БД MS SQL


2-1178777782
Шакал
2007-05-10 10:16
2007.05.27
Проблемы работы написанных программ в win98-2000





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский