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

Вниз

TIBDataset   Найти похожие ветки 

 
maxbgmz   (2004-04-21 21:42) [0]

Помогите справиться с этим компонентом
никак не удается insert,
говорит dataset read-only.
пробовал также ibclient dataset
но там тоже какие-то проблемы.
база исключительно локальная
для одного клиента.

я никак не могу понять где в этих  ibdataset"ах
происходит выбор таблицы.
в selectsql что ли?


 
maxbgmz   (2004-04-21 21:44) [1]

ClientDataSet1.Insert;
 ClientDataSet1.FieldByName("QUANTITY").AsInteger := StrToInt(Edit1.Text);
 ClientDataSet1.Post;

суперсодержательный пример от борланда мне совершенно ничем не помогает. help!


 
Vlad ©   (2004-04-21 21:47) [2]


> maxbgmz   (21.04.04 21:42)  

Ты сначала разберись, о чем речь, либо о TIBDataSet либо о TClientDataSet


 
maxbgmz   (2004-04-21 22:27) [3]

TIBDataSet
ещё вопрос.
зачем свойства selectsql,insertsql и проч.
не read-only? раз из трогать не положено и в них автоматически попадают значения.
скажите, а может быть blob можно внедрить в sql-query string?


 
maxbgmz   (2004-04-21 23:17) [4]

помогите хотя бы integer вставить, про blob  я уже и нем мечтаю


 
Hawk2 ©   (2004-04-22 00:30) [5]

Да хелп по IBX не блещет примерами, знаю по собственному опыту. :)


 
Кщд   (2004-04-22 07:12) [6]

maxbgmz   (21.04.04 22:27) [3]
что прописано в SelectSQL и модифицирующих?


 
Kadr ©   (2004-04-22 08:24) [7]

InsertSQL, UpdateSQL, DeleteSQL как раз и предназначены для того, чтобы датасет не был ReadOnly


 
maxbgmz   (2004-04-22 17:23) [8]

в selectSql стоит:
select * from NEW_TABLE
но разве это может повлиять на успешность insert"f?

а что мне исать в insertsql, для того чтобы вогнать
в таблицу blob? и зачем тогда вообще коматна tdataset().insert,
если получается что она не работает.


 
maxbgmz   (2004-04-22 20:36) [9]

я чувствую что на мой вопрос народу не ответить, ок.
забудем про dataset.

ответьть мне только на один простой вопрос.
как в ib вставить blob?

никому не приходилось вставлять бинарные объекты в интербазу???


 
Vlad ©   (2004-04-22 20:52) [10]

TBlobStream, TMemoryStream + F1


 
maxbgmz   (2004-04-22 22:36) [11]

знаком с этими компонентами, с их помощью мне удаётся
прочитывать информацию.

но проблема insert"a остаётся.

help весь перелопатил, но там нет ни слова об ошибках при вставке...


 
Кщд   (2004-04-23 06:17) [12]

maxbgmz   (22.04.04 22:36) [11]
TIBCustomDataSet.CreateBlobStream с примером


 
Oldman ©   (2004-04-23 06:47) [13]

А попробуй перед Insert написать:
ClientDataSet1.Edit;


 
Жук ©   (2004-04-23 08:47) [14]

При инсерт/аппенд выполняется запрос, прописанный в InsertSQL


 
maxbgmz   (2004-04-23 22:09) [15]

cashedupdates=true не помогает, cannot modify read-only dataset и
всё и точка. неделю бъюсь, всё без толку.
insertsql всегда разный, вы мне предлагаете вставить туда blob?


 
maxbgmz   (2004-04-24 01:21) [16]

to Жук
1.забудем про ClientDataSet.
пробовать устал, правда.

да, insertsql исполняется,
и я пытаюсь после этого редактировать запись,
но ничего не выходит, туда упорно заносится только
то что в insertsql и ничего более.
столько времени угрохано, столько всего прочитано...
такая элементарная вещь и никак не раздолбать.

help :"-(


 
Johnmen ©   (2004-04-24 01:43) [17]

Долбать не надо. Надо спокойно вдумчиво почитать хелп....


 
ЮЮ ©   (2004-04-24 06:15) [18]

Начем с начала:

maxbgmz   (21.04.04 21:44) [1]
суперсодержательный пример от борланда мне совершенно ничем не помогает. help!

 DataSet1.Insert;
 // после этого добавится запись в локальный DataSet
 DataSet1.FieldByName("QUANTITY").AsInteger := StrToInt
(Edit1.Text);
 // заполнятся поля вставленной записи
 DataSet1.Post;
 {а вот здесь выполнится запрос (InsertSQL), в который в качестве параметров проставятся данные из полей записи. Если cashedupdates = true, то запрос сразу выполняться не станет. А выполнятся все запросы для всех модифицированных/вставленных/удаленных для всего DataSeta при применении соответствующего метода}

  Аналогтчно, после DataSet1.Edit;...;DataSet1.Post; выполнится UpdateSQL, а после DataSet.Delete - DeleteSQL.

>maxbgmz   (23.04.04 22:09) [15]
>insertsql всегда разный

Он должен быть всегда один (как и UpdateSQL и DeleteSQL), но правильный. А подставлять туда параметры, это дело самого DataSet-а


 
maxbgmz   (2004-04-26 21:09) [19]

 
        IBDBTH.Open;
        IBDSTH.InsertSQL.Text:="insert into NEW_TABLE(PHOTOID) values(12365651)";
        IBDSTH.Open;
        IBDSTH.Insert;
        IBDSTH.Edit;
        IBDSTH.FieldByName("PHOTOID").AsInteger :=2212312312;
        IBDSTH.Post;
        IBDSTH.ApplyUpdates;
       IBDBTH.CloseDataSets;


тут я не рассматриваю blob для простоты примера.
в результате работы этой программы  всегда получается
12365651 в поле PHOTOID, и никогда 2212312312,
менять команды местами пробовал по разному....

если работать можно только путём insertSQL,
и никакие варианты с IBDSTH.FieldByName()
непопустимы, скажите мне тогда, как засунуть
blob в sql строку.


 
Курдль ©   (2004-04-26 21:22) [20]


> IBDSTH.InsertSQL.Text:="insert into NEW_TABLE(PHOTOID) values(12365651)";


> в результате работы этой программы  всегда получается
> 12365651 в поле PHOTOID, и никогда 2212312312,

А если вы на заборе напишете [censored], неужто там появится слово "МИР"? :)

IBDSTH.InsertSQL.Text:="insert into NEW_TABLE(PHOTOID) values(:PHOTOID)";


 
kaif ©   (2004-04-27 02:53) [21]

У IBDataSet есть запросы ModifySQL, DeleteSQL, InsertSQL и RefreshSQL. Нужно их аккуратно все прописать. Вписываешь параметрические запросы типа
insert into table1 (id, name) values (:id, :name)
update table1 set id := :id, name = :name where id = :old_id
:id и :name это имена параметров. Параметры IBDataSet сам подставит из одноименных полей (компоненты Field). Если не найдет среди полей, то поищет в свойстве DataSource (мало ли, мжет это Master-Detail связь компонентов...).
имена параметров могут иметь префиксы old_, что значит прежнее значение одноименного поля.
Для простоты впиши свой SELECT в свойство SelectSQL и вызови DataSet Editor с помощью контекстного меню компонента (правая кнопка мыши). Нажми Generate SQLs и редактор сам сгенерит тебе все нужные запросы. Убедись, что в условии Where запроса ModifaySQL используются ключевые поля.
Сохрани и попробуй открыть IBDataSet.Active := True или Open.
Он должен нормально заработать с сеткой.
Поля типа BLOB обслуживаются им автоматически. По крайней мере, картинки (TDBImage) и Мемо-поля (TDBMemo) будут работать сразу.
Дальше - читай внимательно Help.
Разберешься.


 
kaif ©   (2004-04-27 02:55) [22]

Как выглядит окошко DataSet Editor-а можешь посмотреть на моем сайте (там не Delphi описано, но все равно сойдет в качестве примера)
http://gaapinvest.com/allegro/doc/book2/doc034.html


 
maxbgmz   (2004-04-27 17:08) [23]

всем спасибо!
разобрался



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

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

Наверх




Память: 0.5 MB
Время: 0.033 c
14-1083359080
Soft
2004-05-01 01:04
2004.05.23
Интернет, нужен ли он?


1-1084120735
Автор
2004-05-09 20:38
2004.05.23
Загрузка из файла


7-1081605190
Ivolg
2004-04-10 17:53
2004.05.23
Мой компьютер


1-1084206117
Nicolas1985
2004-05-10 20:21
2004.05.23
Разрешение экрана


3-1083138302
MaD
2004-04-28 11:45
2004.05.23
Замена значений полей по условию при SQL-выборке





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский