Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Базы данных


Ответ
 
Опции темы Опции просмотра
Старый 09.03.2008, 14:17   #1 (permalink)
Aleksandr_06
Новичок
 
Регистрация: 12.09.2007
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я работаю с БД Oracle. У меня есть несколько таблиц в dataset, связанных между собой. В некоторых есть поля, которые нельзя редактировать(Например ID). Для обновления их я использую oleDataAdapter. Что нужно писать в CommandText в UpdateCommand? Или может быть по другому обновлять данные в БД?
Заранее всем уделившим внимание спасибо.
Aleksandr_06 вне форума   Ответить с цитированием

Старый 09.03.2008, 14:17
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Так же полезную информацию вы можете найти тут

Opera. Обновление
Непонятное обновление

Старый 13.03.2008, 22:56   #2 (permalink)
Aleksandr_06
Новичок
 
Регистрация: 12.09.2007
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Для простоты пусть у меня есть таблица всего из трёх полей :
- ID (первичный ключ)
- Name (строковое поле).
- Date_From (служебное поле, дата ввода, это поле нельзя изменять)
В своей программе я изменяю(добавляю,удаляю,редактирую) данные и вношу изменения в dataset.
Но редактировать я могу только ID и Name.
Добавляю в dataset так : dataSet1.MYTABLE.Rows.Add(NewRow);
Удаляю из dataset так : dataSet1.MYTABLE.FindByID(Del_ID).Delete();
Вношу изменения в dataset так : dataSet1.MYTABLE.FindByID(Up_ID)[1] = textBox1.Text;
Теперь я хочу обновить саму базу данных. Для этого я использую oleDataAdapter.
Для этого я в CommandText пишу :
- для DeleteCommand: DELETE FROM "MYTABLE" WHERE (("ID" = ?) AND ("NAME" = ?) AND ("DATE_FROM" = ?))
- для InsertCommand: INSERT INTO "MYTABLE" ("ID", "NAME","DATE_FROM") VALUES (?, ?, ?)
- для SelectCommand: SELECT MYTABLE.* FROM MYTABLE
- дляUpdateCommand: UPDATE "MYTABLE" SET "ID" = ?, "NAME" = ?, "DATE_FROM" = ? WHERE (("ID" = ?) AND ("NAME" = ?) AND ("DATE_FROM" = ?))
У меня возникла проблема: Если оставить Update как здесь написано, то возникает
ошибка "ORA-20201: Программная ошибка! Попытка обновления служебного поля!"
Но по идее в update в SET не должно быть "DATE_FROM"=? , но если его убрать, то возникает другая
ошибка "ORA-01008: не все переменные привязаны".
Вот меня и мучает вопрос: что я делаю не так?
Подскажите пожалуйста ответ на этот вопрос или может вы знаете какой-нибудь другой способ
обновления данных в БД.
Заранее всем спасибо.
P.S. Ещё подскажите как организовать каскадное удаление.
Aleksandr_06 вне форума   Ответить с цитированием
Старый 20.05.2008, 14:27   #3 (permalink)
andre
Новичок
 
Регистрация: 17.05.2008
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

В книге С.В.Глушакова "DELPHI 2007" (стр. 474) это решение описано так:

...Чтобы не изменять значение какого-либо поля, ему необходимо присвоить значение NIL.
В этом случае прежнее значение поля будет сохранено без изменения.
Редактирование записи с помощью метода SetFields может выглядеть примернотак:

ADOTable1.Edit;
ADOTable1SetFields(['0284','Порошок стиральный',NIL,500]);
ADOTable1.Post;

При выполнении приведенного выше кода первому полю текущей записи присваивается значение '0284' ,
второму полю - 'Порошок стиральный',
третье поле НЕ ИЗМЕНЯЕТСЯ , а четвертое получает значение 500.
...
andre вне форума   Ответить с цитированием
Старый 03.11.2009, 15:34   #4 (permalink)
Paf0s
Member
 
Регистрация: 20.12.2007
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию автоустановка винды

Помогите пожадуйста сделать загрузочный диск Windows .Какая нужна прога и что надо делать?
Paf0s вне форума   Ответить с цитированием
Старый 03.11.2009, 15:36   #5 (permalink)
01pump
Member
 
Регистрация: 01.01.2009
Сообщений: 13,189
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 415
По умолчанию

Altai, Прошу прощения за нескромный вопрос... А из какого дистрибутива вы его (загрузочный диск) собираетесь лепить?
01pump вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 03.11.2009, 15:39   #6 (permalink)
Paf0s
Member
 
Регистрация: 20.12.2007
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

мне надо сделать диск из Wn98
Paf0s вне форума   Ответить с цитированием
Старый 03.11.2009, 15:41   #7 (permalink)
01pump
Member
 
Регистрация: 01.01.2009
Сообщений: 13,189
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 415
По умолчанию

Цитата:
Сообщение от Altai Посмотреть сообщение
мне надо сделать диск из Wn98
Вы хотите сделать загрузочный диск для установки Win98 ?
01pump вне форума   Ответить с цитированием
Старый 03.11.2009, 15:43   #8 (permalink)
Paf0s
Member
 
Регистрация: 20.12.2007
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

да именно , саму винду сейчас качаю с http://qiq.ru/28/04/2009/operating_s...8.html?rk=5239
Paf0s вне форума   Ответить с цитированием
Старый 03.11.2009, 15:47   #9 (permalink)
01pump
Member
 
Регистрация: 01.01.2009
Сообщений: 13,189
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 415
По умолчанию

Цитата:
Сообщение от Altai Посмотреть сообщение
да именно , саму винду сейчас качаю с http://qiq.ru/28/04/2009/operating_s...8.html?rk=5239
Ну всё зависит от того в каком виде вы это чудо скачаете, просто виде архива или в виде образа диска с кучей всякой всячины.
01pump вне форума   Ответить с цитированием
Старый 03.11.2009, 15:49   #10 (permalink)
tych
Member
 
Аватар для tych
 
Регистрация: 19.01.2007
Сообщений: 2,728
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

01pump, он наверное имеет ввиду кучу образов для дискет, которые перевести в 1 загрузочный СД образ
tych вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:54.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.