■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【…OB …OBER …全般 …その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。

よくある質問(FAQ)

検索オプション 矢印

リセット
新規投稿
OBERの同期機能 2008/04/16 13:38 OBER 1
OBER(Ver4.1)の同期機能について質問がございます。
同期を行う際に、ある特定のオブジェクトに対してだけ行うということは可能でしょうか?
質問の経緯としては、
1000テーブルあるモデルのうち1つのテーブルに対してだけ変更を行い、
同期を実行したところ1箇所の変更のためにまずすべてのテーブル(1000テーブル)がリバースされ、
同期にかなりの時間を要してしまったからです。

このようなケースの場合に何か最適な方法はありますでしょうか?
変更したオブジェクトに対してピンポイントで同期を行えれば一番うれしいのですが。。。
よろしくお願いします。

こんにちは
山田@SIです。

大変申し訳ございませんが、現状テーブルを指定しての
DB同期は行うことができません。

この度はご希望に添うことができず大変申し訳ございません。
ご要望として承り、今後のバージョンアップにて対応を
検討してまいりますので、何卒よろしくお願いいたします。

OBER 4.1.0.0 での SQL Server 2005 への
フォワードエンジニアリングに関する質問です。

テーブルや列に説明として「定義」情報を付加していると
以下のようなスクリプト処理が実行されると思います。

exec sp_addextendedproperty 'MS_Description', '説明文', 'user', 'TEST_SCHEMA', 'table', 'TEST_TABLE', 'column', 'TEST_COL'

ここで、「'user'」の記述が問題で

《エラー》オブジェクトが無効です。拡張プロパティが 'TEST_SCHEMA.TEST_TABLE.TEST_COL' で許可されていないか、オブジェクトが存在しません。

とのエラーが発生します。

上のスクリプトの「'user'」の部分を「'schema'」と
すると問題なく実行できるスクリプトとなるのですが、
OBER4 は SQL Server 2005 に完全対応出来ているので
しょうか?2005から導入されたスキーマの概念に正しく
対応されているのか、またはこちらの操作に問題が
あるのか、ご確認いただければ幸いです。

ちなみに MSDN の以下のドキュメントから引用すると
http://msdn2.microsoft.com/ja-jp/library/ms180047.aspx

「sp_addextendedproperty」

重要 :
レベル 0 のオブジェクトの種類である USER および TYPE は、SQL Server の今後のバージョンで削除される予定です。新しい開発作業では、これらの機能の使用を避け、現在これらの機能を使用しているアプリケーションは修正するようにしてください。USER の代わりに、レベル 0 の種類として SCHEMA を使用してください。TYPE については、レベル 0 の種類として SCHEMA、レベル 1 の種類として TYPE を使用してください。

■ スキーマとユーザー
以前のバージョンの SQL Server では、ユーザーがテーブル、ビュー、トリガなどのデータベース オブジェクトを所有していました。このため、これらのオブジェクトのいずれかに拡張プロパティを追加し、レベル 0 の種類としてユーザー名を指定することは、許可されていました。ただし、SQL Server 2005 では、データベース オブジェクトはスキーマに含まれています。これらのオブジェクトは、スキーマを所有しているユーザーから独立しています。
こんにちは
山田@SIです。

ご意見ありがとうございます。
現状OBERではあらゆる場合でも「user」としてSQL文を作成しております。
この件に関しましては、今後のバージョンアップにて対応を
検討してまいりますのでよろしくお願いいたします。

なお、2005の場合でも、この部分が「user」であっても
SQL自体は実行されるようです。
つきましては二点後確認をお願いしたいのですがよろしいでしょうか。

・エンティティで入力したスキーマ名は存在いたしますでしょうか。
・フォワードオプション「スキーマ名を出力する」
 が有効になっておりますでしょうか。

お手数をお掛けしてしまい、大変申し訳ございませんが、
何卒よろしくお願いいたします。

Object Browser ER4を使用していますが、
照合順序の設定はできないのでしょうか?

create table A
(
abc varchar(8) collate Japanese_bin not null
)
こんにちは
山田@SIです。

お問い合わせいただいた件に関しましてですが、
エンティティエディタのポストSQL欄にSQLを記述することによって
フォワードエンジニアリングにて設定することが可能です。

例)
ALTER TABLE A ALTER COLUMN abc
varchar(8)COLLATE Japanese_bin NOT NULL

※フォワードオプションで、「プリ/ポストSQLを出力する」
 が有効になっていることをご確認ください。
 尚、ERでは照合順序の情報を管理しておりませんので、
 リバースした場合などは照合順序は取得できません。

何卒よろしくお願いいたします。


ご回答ありがとうございます。

ポストSQLでALTER TABLEを使用して照合順序の変更はできますが、
対象のカラムがキー項目だとエラーになります。
こんにちは
山田@SIです。

ご指摘のとおり、キー項目にポストSQLで設定すると、
SQLServerでエラーとなります。
お手数ですがキー項目に関しましては
データベース側での操作をお願いいたします。

この度はご希望に添えず大変申し訳ございませんが、
何卒よろしくお願いいたします。
SQL Server 2005のテーブル定義をObject Browserへリバースエンジニアリング
しようとしていますが、
「オブジェクト名 'sysproperties'が無効です。」
というメッセージが出力されて定義情報をリバースできません。

データベースへの接続後テーブルの選択等は行えるので、
SQL Serverへは接続できているのですが、
何か設定が足りないのでしょうか?

ちなみにデータベースの照合順序は「Japanese_CI_AS」となっております

環境:SQL Server 2005 Standard Edtion
SI Object Browser ER 3.0.2.15
こんにちは
山田@SIです。

大変申し訳ございませんが、
バージョン3はSQLServer2005に対応しておりません。
SQLServer2000でご使用いただくか、バージョン4を
ご使用くださいますようお願い申し上げます。

何卒よろしくお願いいたします。
山田様 ご回答ありがとうございました。

バージョン3ではSQL Server 2005に対応していないということですが、
もしSQL Server 2005に対応したバージョン4を使用したい場合、
現在のバージョン3からバージョン4へのアップグレード等は
あるのでしょうか?

それともバージョン4の製品版を購入することになるのでしょうか?

元々の質問とは異なる内容になってしまいましたが、
よろしくお願いしたします。
こんにちは
山田@SIです。

大変申し訳ございませんが、3→4などのアップグレード
ファイル等はご用意しておりません。
上位バージョンを新規にご購入していただく必要が
ございます。

この度はご希望に添えず大変申し訳ございません。
何卒よろしくお願いいたします。
了解しました。
何度も回答いただきありがとうございました。
SQLServer2005を対象とした開発案件でSIObjectBrowserERを使用しております。
VARBINARY型を使用する際にドメイン・エンティティどちらのウィンドウにおいても
”MAX”が指定できず、結局ポストSQLで無理やり直しているのですが、回避策は無いでしょうか?

【環境】
SIOBER 4.0.2.6
OS:WindowsXP SP2
開発対象DB SQLServer2005 (9.00.3042.00)
こんにちは
山田@SIです。

ご質問いただいた件ですが、
大変申し訳ございませんが、現状MAXの対応は
実装しておりません。こちらの件に関しましては、
今後のバージョンで対応を検討しております。

尚、現バージョンに起きましても、MAXを指定して
テーブルを作成することは可能です。
エンティティエディタ、データ型の欄に、VARBINARYの
場合でしたら「VARBINARY(MAX)」と手入力することで、
テーブルをMAX値を使用して作成することが可能です。

ただし、前述のとおりERでは現状完全に対応はしていないため、
MAX値を含んだテーブルをリバースしても、MAXは欠落してしまいます
のでご注意ください。

この度はご希望に添えず大変申し訳ございませんが、
何卒よろしくお願いいたします。

やはりそうでしたか。
返答ありがとうございました。
DB管理者です。

弊社にて本番スキーマと開発スキーマを分けており、開発スキーマにおいては開発者に個々のユーザアカウントを貸与して運用しています。

SQLの開発者は開発スキーマへのSQL文作成において 開発.テーブル名 と開発スキーマ名をつけてテーブルを指定しています。ところが、本番スキーマへ移行するときには SQL上の 開発スキーマ名の部分を取らなければいけません。(開発と本番のスキーマ名が違うため)
また、開発スキーマのオーナーでは開発環境にはアクセスしない運用にしています。

ここで本番へのSQL移行時に面倒ないようにするために、開発環境において別スキーマのオーナーを指定しない方法でSQLを作成したいのですが、そのような方法は可能でしょうか?

こんにちは
後迫@SIです。

お問い合わせいただきました件についてですが、
以下の手順にてスキーマ名を付加せずにCREATE文の
スクリプトを作成することが可能です。

①移行元のオブジェクトリスト(ログイン後に表示されるオブジェクトの一覧画面)
 にて、該当のオブジェクトを選択し、右クリック→スクリプト出力を選択します。
②スクリプト出力画面にて、「スキーマ名の出力」の設定を「出力しない」にした上、
 「開始」ボタンを押します。

スクリプト作成後は、移行先にて該当のユーザでログインし
上記スクリプトを実行していただくことで、
本番環境のユーザ上にオブジェクトを作成することが可能です。

何卒よろしくお願いいたします。
はじめまして。
今回はOBER ver.4.1のデータ生成ツールに関して質問がございます。
データ生成ツールで1度データを生成すると、
次回同じエンティティに対してデータ生成を行う際、
前回の設定を読み込むことができます。

今回質問させていただくのはリンクテーブル値についてです。
上記のように前回生成したデータの設定を読み込んだ際、
リンクテーブル値の項目名のみ前回設定した値が消えて空になってしまいます。
スキーマ名とリンクテーブル名は前回の設定を読み込めています。
これはそのような仕様になっているのでしょうか?
もしくは何かやり方に問題があるのでしょうか?
お忙しい中申し訳ございませんがご回答よろしくお願いいたします。

こんにちは
山田@SIです。

ご質問いただいた件でございますが、
こちらで再現ができず、原因の特定が困難な状況です。

つきましては、以下の追加情報をいただきたいと思います。

・ERのバージョンは4.1.0.0でしょうか。
・前回データ生成後、今回生成までの間に
 項目名を変更、または削除したということはありますでしょうか。


以上、お手数をおかけして大変申し訳ございませんが、
よろしくお願いいたします。
回答ありがとうございます。

以下、質問に回答します。
>・ERのバージョンは4.1.0.0でしょうか。
バージョンは4.1.0.0です。

>・前回データ生成後、今回生成までの間に
> 項目名を変更、または削除したということはありますでしょうか。
特に何も変更は行っていません。
1度データを生成し、再度データ生成ツールを起動したときにはリンクテーブル値の
項目名が空になっています。

以上、よろしくお願いいたします。
こんにちは
山田@SIです。

>特に何も変更は行っていません。

一度データ生成後にエンティティの該当する項目名を
変更または削除した場合は、再度実行するときに
空になりますが、今回はそのケースに
当てはまらないようですので、こちらで
調査を行いたいと考えております。

差し支えなければ、以下の2ファイルを
サポート宛にメールをいただきたいと思います。

・該当のEDMファイル

・C:\Documents and Settings\All Users\Application Data\OBER4 または
 C:\Program Files\OBER4
 直下にあります、datagen フォルダの中にある
 [データ生成したテーブル名].prm ファイル

以上になります。
お手数をおかけしてしまい大変申し訳ございませんが、
よろしくお願いいたします。





ObjectBrowserAPを使用してASP.NETによる
業務アプリケーション開発を行っています。

ObjectBrowserAPの検索ページカスタマイズのサンプル
(SearchPractice3\Table1Search.aspx)
を元にページング機能を持った一覧を表示したいと考えています。
ページングの実装で1点、解決出来ない問題が発生しております。

ただし、サンプルとは1点異なる箇所が、
TableDataSource#Selectingイベント内で
データ取得を行っております。
データ取得、ページ数の表示は正常に行われます。
しかし、表示したいページ数(1,2,3・・・の2をクリック)を
クリックして該当ページのデータを表示する際に
TableDataSource#Selectingが再度、
実行されてしまい初期表示(1ページ目)と
同じデータが表示されてしまいます。

TableDataSource#Selectingイベントを削除して
SearchControllerで検索条件を与えデータ取得すると
問題なくページングが行われる事は確認しております。

作成しているページが以下の構成になっております。

一覧表示 : M3Repeater
データソース : TableDataSource
ページャー : ListFooterユーザーコントロール

よろしくお願い致します。
こんにちは
後迫@SIです。

お問い合わせいただきました件についてですが、
TableDataSourceのSelectingイベントを利用して、ページング、
ソート等を考慮するためには、DataSourceSelectingEventArgsの
StartRowIndexプロパティと、MaximumRowsプロパティなどの
プロパティを考慮して、SQL文を発行する必要があります。

具体的なサンプルについては、OBAP Webサンプルでの
「サンプル->検索系->SQL実行のカスタマイズ」を参照していただけますでしょうか。
(\Sample\Search\SearchCustomize5.aspx.cs(vb)の
listDS_Selectingメソッドが該当箇所となります。)

お手数をおかけいたしますが、
何卒、よろしくお願いいたします。