オブジェクト型の変更は可能か?

このQ&Aのポイント
  • 既存のオブジェクト型を再構築せずに変更することは可能でしょうか?
  • オブジェクト型の変更方法について詳しく教えてください。
  • オブジェクト型の一部を削除せずに変更する方法はありますか?
回答を見る
  • ベストアンサー

オブジェクト型の変更は可能か?

既に作成されているオブジェクト型を再構築ではなく「変更」することは 可能でしょうか? 例) オブジェクト型(parts)を削除せずに以下のように「変更」したい. 現状 create type maker_t as object ( id name, add, tel ); create type parts as object ( id name, maker REF maker_t ); 変更後 create type shop_t as object ( id name, staff ); create type maker_t as object ( id name, add, tel ); create type parts as object ( id name, maker REF maker_t, shop REF shop_t );

  • Oracle
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>既に作成されているオブジェクト型を再構築ではなく「変更」することは >可能でしょうか? 「削除&作成」でなく、「変更したい」という意義は何ですか? 削除&作成でも、変更でも、DDL発行に伴い、依存オブジェクトは、 リコンパイルが必要になると思うので、どちらでも同じではないですか?

関連するQ&A

  • オブジェクトを配列として扱いたい

    Java(オブジェクト指向)を始めて数日の者です。 LinkedListを利用し、インスタンス化したオブジェクトをListに入れて 扱えるようにしたいと考えています。 具体的には LinkedList<クラス名> array = new LinkedList<クラス名>(); クラス名 object1 = new クラス名(); -object1の処理- array.add(object1); -object1の処理- array.add(object1); -object1の処理- array.add(object1); このようにして、object1を配列で管理するイメージです。 object1の処理結果は、毎度変わっています。 しかしこれですと、最後のobject1の処理の内容がすべてのarray(i)に入ってしまいます。 要は、array(i)は全て、同じobject1を参照しているだけ。 object1の変更結果がarray(i)に入っていくというイメージでは無い、ということでしょうか? また、この他でインスタンス化したものを配列で管理できるような方法がございましたら、ご教授いただけると幸いです。m(_ _)m 動的に配列の要素数を変更(要素が追加)ができるようにしたいのです。

    • ベストアンサー
    • Java
  • Excel VBAでオブジェクト名を変更する方法

    Excelでシートを新規追加するマクロを作っています。この時、下記のようなコードでシート名を変更するのですが、同時にオブジェクト名も変更する事は可能でしょうか? Sheets.Add ActiveSheet.Name = "テスト" なぜオブジェクト名も変更したいのかと言いますと、動的にイベントプロシージャを作成する際、下記のようなコードを記述してるのですが、シート名とオブジェクト名が一致してないとエラーが出てしまうんです。 Dim cdMoj as CodeModule Dim Ln as Long Set cdMoj = ThisWorkBook.VBProject.VBComponents(ActiveSheet.Name).CodeModule Ln = cdMoj.CreateEventProc("Click", "Command1") cdMoj.InsertLines Ln + 1, "MsgBox ""VBAで追加したマクロです。""" なにか良い方法がありましたらご教授下さい。どうぞ宜しくお願いします。

  • ASP レコードセットオブジェクト

    コレクションにFieldsからAddし、展開するとエラーが発生します。(エラーは下記) レコードが単純に取得できていないと見せかけて、Recordcountはしっかりと取れてますし、仮にコレクションAdd前に変数に置き換えると問題なくAddされています。 この現象について何か問題は考えられますか? 補足につきましては徹夜作業につき随時行います。 ソースが長すぎて、個別で送ります。 例)  (1)'オブジェクト直接からのAddの場合 MSTCol.Add "ID", PrmRec.Fields("ID")・・・×  (2)'変数に置き換えてからのAddの場合 S_ID = PrmRec.Fields("ID") MSTCol.Add "ID", S_ID ・・・○ --ソース---------------------------------------- 2|SQL = "SELECT ID, NAME, TEL FROM MST_PEOPLE ORDER BY ID" 3| 'DB接続&レコードセット 4| Set RetRec = DBCon_RecSet(SQL) 5| 'レコード置き換え処理実行 6| Set RetListObj = CreateListObj(G_RecSearch) 7|'確認としての処理(テスト段階) 8|Set Item_NO = RetListObj(1) 9|value1 = Item_NO.Item("TEL") 10|Response.Write(Value1) エラー タイプ ADODB.Field (0x800A0BCD) BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。 エラー行数13行目

  • ExcelVBA:パブリック オブジェクト モジュール…というエラーの対処法

    こんにちは。 今回、WindowsXP SP2上のExcel2003 VBAを使ってツールを作成しているのですが、 以下のようなエラーが出て手が止まっています。 「コンパイル エラー:  パブリック オブジェクト モジュールで定義されたユーザ定義型に限り、変数に割り当てることができ、実行時バインディングの関数に渡すことができます。」 というものです。 具体的な環境としまして、 標準モジュールにDefineTypeというモジュールを作成し、 Public Type Record ID As Integer Name As String End Type を定義しています。 これをクラスモジュールに作成したCClassから以下のように参照しています。 Private Detail As New Collection 'of Record Private Sub Sub1()   Dim rec As Record   rec.ID = 3   rec.Name = "おなまえ"   Detail.Add rec   ~~~~~~~~~~~~~~ End Sub Public Sub CallSub1()   Call Sub1 End Sub そして、このクラスの中のPublicな関数であるCallSub1を フォームモジュールから呼び出しているのですが、 Sub1 の Detail.Add がだめなようです。 ・このエラーの意味 ・どこがどうだめなのか ・どうすれば解決できるか を、糸口でも構いませんのでご教授下さい。 よろしくお願いいたします。

  • OBJECTタグで、PARAMを使用するとActiveXコントロールが表示されない

    こんにちは。 今回の質問内容は、タイトルにあるように、 OBJECTタグでPARAMを使用すると、画面に何も表示されません。 PARAMを使わずに開いてみると、普通に開きます。 何かセキュリティ関係の設定を変更する必要があるのか、HTML等ソースを変更しなければならないのか分かりません。 何か分かる方がおられましたら、ご回答ください。 OBJECTタグのソース↓ <OBJECT ID="MainWindow" CLASSID="CLSID:ABCB59-5C9D-4D83-9A16-83AFFD73458" CODEBASE="test.CAB#version=1,0,0,0"> <PARAM NAME="test1" VALUE="100"> <PARAM NAME="Age" VALUE="100000"> <PARAM NAME="Name" VALUE="test"> </OBJECT

    • ベストアンサー
    • HTML
  • 複数テーブルで ID の一意性を保つ

    Debian GNU/Linux 3.1 で psql 8.1.2 を使用しています。 下記の要領でテーブルを作成し、2つのテーブルでIDが重ならないようにしようと意図しました。 CREATE TABLE t1 ( t1_id int2 UNIQUE NOT NULL, t1_name text NOT NULL ); NOTICE: CREATE TABLE / UNIQUE will create implicit index "t1_t1_id_key" for table "t1" CREATE TABLE CREATE TABLE t2 ( t2_id int2 UNIQUE NOT NULL, t2_name text NOT NULL ); NOTICE: CREATE TABLE / UNIQUE will create implicit index "t2_t2_id_key" for table "t2" CREATE TABLE CREATE FUNCTION unique_t12_id(int2) RETURNS BOOLEAN AS 'SELECT NOT ( EXISTS(SELECT * FROM t1 WHERE t1_id = $1) AND EXISTS(SELECT * FROM t2 WHERE t2_id = $1) );' LANGUAGE SQL; CREATE FUNCTION ALTER TABLE t1 ADD CONSTRAINT con_unique_t12 CHECK (unique_t12_id(t1_id)); ALTER TABLE ALTER TABLE t2 ADD CONSTRAINT con_unique_t12 CHECK (unique_t12_id(t2_id)); ALTER TABLE ところが実際は上手くいきませんでした。 INSERT INTO t1 VALUES(1, 'test1'); INSERT 0 1 INSERT INTO t2 VALUES(2, 'test2'); INSERT 0 1 INSERT INTO t2 VALUES(2, 'test3'); ERROR: duplicate key violates unique constraint "t2_t2_id_key" # ここまでは期待通りの挙動です INSERT INTO t2 VALUES(1, 'test4'); INSERT 0 1 ここで制約が働いて欲しかったのですが、素通りでINSERTされています。 下記のように、操作後の関数の戻り値は「偽」なのでこの操作は制約に引っかかると思うのですが 何故意図したように動かないのでしょうか。 SELECT *,unique_t12_id(t2_id) FROM t2; t2_id | t2_name | unique_t12_id -------+---------+--------------- 2 | test2 | t 1 | test4 | f (2 rows) スペースが詰まって読みづらい箇所もありますが、よろしくお願いします。

  • ”オブジェクト参照がオブジェクト インスタンスに設定されていません。”って

    開発初心者で困っております。 VisualBasic2005、SQL Server2005Expressで開発しています。 DataGridViewのToolStripでフィルターを掛けたいのですが、フィルタの実行をすると、Dgvで行っているカラム1+カラム2の計算をしているSubプロシージャで”オブジェクト参照がオブジェクト インスタンスに設定されていません。”というエラーが出て中断します。 下記にソースを記載します。 (ToolStripフィルタ実行)----------------------------------------- Private Sub FillByDivToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FillByDivToolStripButton.Click If cmbDiv.Text <> "" Then Try Me.T_payscheduleTableAdapter.FillByDiv(Me.MoPDataSet.t_payschedule, cmbDiv.Text) ・・・ (Dgvの計算部分)------------------------------------------------- Private Sub T_payscheduleDataGridView_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles T_payscheduleDataGridView.SelectionChanged Dim iRow As Integer =Me.T_payscheduleDataGridView.CurrentCell.RowIndex() ←ここでエラー発生!! Dim iCol As Integer=Me.T_payscheduleDataGridView.CurrentCell.ColumnIndex() ・・・ ------------------------------------------------------------- エラーMsgを手掛かりに色々調べてはいるのですが解決の糸口がつかめません。よろしくお願いします。

  • コンボボックスのドロップダウンで選択する文字列と選択後の文字列を変更し

    コンボボックスのドロップダウンで選択する文字列と選択後の文字列を変更したいです。 ComboBox1.Items.Add("ID : NAME") Private Sub ComboBox1_Validated(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles ComboBox1.Validated ComboBox1.Text = "ID" End Sub これでコンボのフォーカスを外せば表示が"ID"になりますが、選択後は"ID : NAME"のままです。 イベント内で別のコントロールにフォーカスを当てようとしても無理でした。 なにか方法はないでしょうか? ownerdrawで複数列を持たせる方法でやりたいことはできるのですが、 この方法はわけあって避けたいと考えています。

  • phpで作成した携帯サイトのメールフォームがPCからは正常に送信されるのに、携帯から送信すると届きません。

    ソースindex <form action="kakunin.php" method="POST" > お名前 <input name="name" id="name" type="text"> フリガナ<input name="furi" id="furi" type="text"> ご住所<input name="add" id="add" type="text"> TEL<input name="tel" id="tel" type="text"> FAX<input type="text" name="fax"> E-MAIL <input name="mail" id="mail" size="30" type="text"> お勤め先名 <input name="k_name" id="k_name" type="text"> 勤続年数<input type="text" name="nensu"> 年収<input type="text" name="nenshu"> ご要望、ご質問等<textarea rows="5" cols="10" name="yobo"></textarea> <input type="submit" value="送信する"> </form> ---------------確認画面----------------------- <?php $name =$_POST[name]; $furi =$_POST[furi]; $add =$_POST[add]; $tel =$_POST[tel]; $fax =$_POST[fax]; $mail =$_POST[mail]; $k_name =$_POST[k_name]; $nensu =$_POST[nensu]; $nenshu =$_POST[nenshu]; $yobo =$_POST[yobo]; if($name == ""){ $err_massage .= "お名前を入力してください。"; } if($furi == ""){ $err_massage .= "フリガナを入力してください。"; } if($tel == ""){ $err_massage .= "TELを入力してください。"; } if($mail == ""){ $err_massage .= "E-MAILを入力してください。<br />"; }else{ if(ereg("([0-9a-zA-Z._-]{1,})@([0-9a-zA-Z.-_]{1,})",$mail)){ }else{ $err_massage .= "E-MAILを正しく入力してください。"; } } if($err_massage != ""){ print <<<ERR $err_massage <a href="index.html">戻る</a> ERR; }else{ print <<<FORM <form action="sosin.php" method="post"> お名前 $name フリガナ $furi ご住所 $add TEL(携帯可) $tel FAX $fax E-MAIL $mail お勤め先名 $k_name 勤続年数 $nensu 年収 $nenshu ご要望、ご質問等 $yobo <input name="name" value="$name" type="hidden"> <input name="furi" value="$furi" type="hidden"> <input name="add" value="$add" type="hidden"> <input name="tel" value="$tel" type="hidden"> <input name="fax" value="$fax" type="hidden"> <input name="mail" value="$mail" type="hidden"> <input name="k_name" value="$k_name" type="hidden"> <input name="nensu" value="$nensu" type="hidden"> <input name="nenshu" value="$nenshu" type="hidden"> <input name="yobo" value="$yobo" type="hidden"> <input type="submit" value="送信する"> </form> FORM; } ?> -送信画面- <?php $name =$_POST[name]; $furi =$_POST[furi]; $add =$_POST[add]; $tel =$_POST[tel]; $fax =$_POST[fax]; $mail =$_POST[mail]; $k_name =$_POST[k_name]; $nensu =$_POST[nensu]; $nenshu =$_POST[nenshu]; $yobo =$_POST[yobo]; mb_language("Ja") ; mb_internal_encoding("shift-JIS") ; $from_mail = '送信メールアドレス'; $msg = "【タイトル】 "."お名前:"."$name"." フリガナ:"."$furi"." 住所:"."$add"." TEL:"."$tel"." FAX:"."$fax"." E-MAIL:"."$mail"." お勤め先名:"."$k_name"." 種類:"."$shurui"." 勤続年数:"."$nensu"." 年収:"."$nenshu"." お問合せ内容:"."$naiyo_out"." ご要望・ご質問等他:"."$yobo"; $sb = "【タイトル】"; $rcd = mb_send_mail($from_mail, $sb, $msg, "From:$mail"); ?>

    • 締切済み
    • PHP
  • オブジェクト数の取得

    以下のようなテキストボックスがあります。 <input type="text" name="price1[0]"> <input type="text" name="price2[0]"> <input type="text" name="price3[0]"> <input type="text" name="price1[1]"> <input type="text" name="price2[1]"> <input type="text" name="price3[1]"> ・・・・ 添え字は[0]、[1]、[2]・・・となり、 データにより可変となっています。 入力するのは金額なので、数値かどうかのチェックを行いたいのですが、テキストフィールドの個数をどのように取得したらよいかがわかりません。 他のオブジェクトとのからみで、name="price1[]"のように変更することはできません。 (このようにすると、オブジェクト数は取得できるのですが) 上記記述のオブジェクト数の取得方法がわかる方、教えてください。テキストは金額のみなので、テキストフィールド全ての個数でもよいですし、price1[]、price2[]、price3[]各々の個数でもどちらでもよいです。 よろしくお願いいたします。