約 180,852 件
https://w.atwiki.jp/toolstorage/pages/26.html
指定テーブルの有無 ソース HasSelectedTable 指定MDBに指定テーブルが存在しているかを確認する 引数:あり iDB : DAO.Database :検索先のMDB iSelectedTableName : String :検索対象のテーブル名 戻り値:あり Boolean : 検索対象のテーブルの有無(テーブルが存在していた場合TRUE) Public Function HasSelectedTable(ByVal iDB As DAO.Database, ByVal iSelectedTableName As String) As Boolean Dim dbTblDef As DAO.TableDef Dim result As Boolean 返却値の初期化 result = False 指定MDBのすべてのテーブルに対し処理を行う For Each dbTblDef In iDB.TableDefs 検索対象のテーブルが存在していれば、返却値をTRUEにする If dbTblDef.Name = iSelectedTableName Then result = True Exit For End If Next HasSelectedTable = result End Function パッケージ化されたクラスはこちら トップ
https://w.atwiki.jp/toolstorage/pages/29.html
指定クエリの有無 ソース HasSelectedQuery 指定MDBに指定クエリが存在しているかを確認する 引数:あり iDB : DAO.Database :検索先のMDB iSelectedQueryName : String :検索対象のクエリ名 戻り値:あり Boolean : 検索対象のクエリの有無(クエリが存在していた場合TRUE) Public Function HasSelectedQuery(ByVal iDB As DAO.Database, ByVal iSelectedQueryName As String) As Boolean Dim dbQueryDef As DAO.QueryDef Dim result As Boolean 返却値の初期化 result = False 指定MDBのすべてのテーブルに対し処理を行う For Each dbQueryDef In iDB.QueryDefs 検索対象のテーブルが存在していれば、返却値をTRUEにする If dbQueryDef.Name = iSelectedQueryName Then result = True Exit For End If Next HasSelectedQuery = result End Function パッケージ化されたクラスはこちら トップ
https://w.atwiki.jp/dandansaniko/pages/15.html
シーケンス作成 ORACLE CREATE SEQUENCE [スキーマ名].[シーケンス名] INCREMENT BY 1 START WITH 1 MAXVALUE 9999999999 MINVALUE 1 NOCYCLE CACHE 20 ORDER トリガー作成 ORACLE CREATE OR REPLACE TRIGGER [スキーマ名].[トリガー名] BEFORE INSERT ON [スキーマ名].[テーブル名] FOR EACH ROW BEGIN IF NEW.[アイテム名] IS NULL THEN SELECT [シーケンス名].NEXTVAL INTO NEW.[アイテム名] FROM DUAL; END IF; END; SQL先頭からn件データの取り出し DB2 FETCH FIRST n ROWS ONLY ORACLE rownum n = n = n コネクト情報の表示 ACCESS SELECT MSysObjects.ForeignName, MSysObjects.Name, MSysObjects.Database, IIf(MSysObjects.Type=4,"odbc",IIf(MSysObjects.Type=6,"mdb","tbl")) AS Type FROM MSysObjects WHERE (((MSysObjects.Type)=1 Or (MSysObjects.Type)=4 Or (MSysObjects.Type)=6)) ORDER BY MSysObjects.Type; SQL Server 日付の変換 型変換 CONVERT関数を使用する。 CONVERTで使用できるスタイル値 西暦なし 西暦あり 標準 フォーマット 0 100 規定値 mon dd yyyy hh mi AM(PM) 1 101 USA 2 102 ANSI 3 103 4 104 5 105 6 106 7 107 8 108 9 109 規定値+ミリ秒 10 110 USA 11 111 日本 12 112 ISO 13 113 14 114 20 120 ODBC標準 21 121 ODBC標準+ミリ秒
https://w.atwiki.jp/craftopiamodder/pages/25.html
MODのデバッグ環境 MODのデバッグは非常に時間がかかりますが、 手助けになるツールがいくつかあります。 ここでは2種類のツールを紹介しますので、 MOD作成で行き詰った際にはぜひ試してみて下さい。 ツール名 概要 UnityExplorer BepInExのプラグインとして動作し、ゲーム内UIでデバッグ、変更を行えるツール Debugging plugins with Visual Studio Visual StudioからUnityにアタッチし、ブレークポイントなどを使用したデバッグができる方法 UnityExplorer MODを導入するのと同じ感覚で導入できます。 導入が簡単で、呼び出されるクラスの特定など様々な用途で使えるのでおすすめです。 導入方法 GitのUnityExplorerリリースページから最新のUnityExplorer.BepInEx5.Mono.zipをダウンロードし、 zipのpluginsフォルダに入っているものを全て\BepInEx\pluginsにコピーしてください。 //フォルダ構成 BepInEx │ └─plugins │ └─sinai-dev-UnityExplorer UnityExplorer.BIE5.Mono.dll UniverseLib.Mono.dll 使用方法 ゲーム内でF7で表示/非表示を切り替えることができます。 configフォルダに生成されるcom.sinai.unityexplorer.cfgのHide On Startupを変更することで、 起動時の表示/非表示を変更できます。 Debugging plugins with Visual Studio 導入は大変ですが、かなり便利です。 Visual Studio上でブレイクポイントを設定し、変数の中身を確認したりステップ実行したりできます。 導入方法 導入は数ステップあります。 ここでは、Visual Studio Community 2022ベースで解説します。 Step1 クラフトピアをDevelopment Buildに変更する Step2 MODのビルド / mdbの生成 / MODの配置 Step3 Visual Studio Tools for Unityの導入 導入方法 (Step1 クラフトピアをDevelopment Buildに変更する) GitのdnSpy Wikiを参考に、クラフトピアをDevelopment Buildに変更します。 以下に2023/7/13現在で成功した方法を記載します。 まず下記のファイルおよびフォルダを別の場所にコピーし、バックアップを取得します。 ※後ほどこれらのファイルを上書きするため ディレクトリ バックアップ対象 ① C \Program Files (x86)\Steam\steamapps\common\Craftopia Craftopia.exe ② C \Program Files (x86)\Steam\steamapps\common\Craftopia UnityPlayer.dll ③ C \Program Files (x86)\Steam\steamapps\common\Craftopia\Craftopia_Data boot.config ④ C \Program Files (x86)\Steam\steamapps\common\Craftopia\Craftopia_Data Managed ⑤ C \Program Files (x86)\Steam\steamapps\common\Craftopia\Craftopia_Data Resources Craftopia.exeを作ったUnityのバージョンを特定します。 Craftopia.exeのプロパティを確認し、詳細→製品バージョンで確認できます。 今回は製品バージョンに「2021.3.15f1」と記載されていた場合を想定します。 Unity download archiveから特定したバージョンのUnityをダウンロードおよびインストールします。 今回は「2021.3.15f1」の為、Unity 2021.3.15をインストールします。 インストール後、下記のフォルダを開きます。 C \Program Files\Unity\Hub\Editor\2021.3.15f1\Editor\Data\PlaybackEngines\windowsstandalonesupport\Variations\win64_player_development_mono win64_player_development_mono内のファイルおよびフォルダで、 前段でバックアップを取得したディレクトリを上書きします。 ファイルおよびフォルダ名 上書き場所 WindowsPlayer.exe Craftopia.exeにリネームし、バックアップ対象①に上書き UnityPlayer.dll バックアップ対象②に上書き \Data\Managed バックアップ対象④に上書き \Data\Resources バックアップ対象⑤に上書き boot.configをメモ帳で開き、下記の内容に書き換えます。 //C \Program Files (x86)\Steam\steamapps\common\Craftopia\Craftopia_Data\boot.config gfx-enable-gfx-jobs=1 gfx-enable-native-gfx-jobs=1 wait-for-native-debugger=0 hdr-display-enabled=0 gc-max-time-slice=3 player-connection-mode=Listen player-connection-debug=1 player-connection-wait-timeout=-1 Steamからクラフトピアを起動し、右下にDevelopment Buildと表示されていたら完了です。 導入方法 (Step2 MODのビルド / mdbの生成 / MODの配置) MODを「Debug構成」でビルドしてください。 プロジェクト名\bin\Debug フォルダににdll及びpdbが生成されていれば大丈夫です。 dllが生成されたら、dllからmdbを生成します。 Gitのpdb2mdbリリースページから最新のzipをダウンロードして、 pdb2mdb.exeをわかりやすい場所へ移動させ、dllファイルをpdb2mdb.exeにドラッグ&ドロップしてください。 dllファイルと同じディレクトリにmdbが生成されます。 ここまで完了したら、普段通りdllファイルを\BepInEx\pluginsに配置します。 その際、pdbおよびmdbも同様にpluginsフォルダに配置してください。 dll、pdb、mdbが同じフォルダに存在することで、デバッグが可能になります。 導入方法 (Step3 Visual Studio Tools for Unityの導入) ※Visual Studioで[デバッグ(D)] - [Unityデバッガーのアタッチ]が表示されていない場合に実施してください。 Visual Studio InstallerでVisual Studio Community 2022の変更を押し、 個別のコンポーネントタブからVisual Studio Tools for Unityを追加インストールしてください。 使用方法 起動中のDevelopment BuildのUnityアプリケーションに対し、 Visual Studioの[Unityデバッガーのアタッチ]を使用してアタッチすることでデバッグすることが可能です。 導入手順が完了している場合、Steamからクラフトピアを起動した後、 Visual Studioで[デバッグ(D)] - [Unityデバッガーのアタッチ]を実行することで、 クラフトピアとVisual Studioが接続されます。 試しにブレイクポイントを設定して、 MODが動作する場面でブレイクポイント部分で中断できるか試してみるとよいでしょう。 備考 シンボル(pdbおよびmdb)がちゃんと読み込めていない場合、 ブレイクポイントを設定しても「ブレイクポイントは、現在の設定ではヒットしません」と出てしまう場合があります。 もしブレイクポイントが作動しない場合は、[Unityデバッガーのアタッチ]を実行中に、 [デバッグ(D)] - [ウィンドウ(W)] - [モジュール]で自作モジュールのシンボル状態を確認してみてください。 もしシンボルが読み込めていても上記エラーが出る場合は、 [デバッグ(D)] - [オプション(O)] のデバッグ全般から下記のチェックを外してみてください。 マイ コードのみを有効にする 元のバージョンと完全に一致するソースファイルを必要とする
https://w.atwiki.jp/hitkik/pages/14.html
レプリカとは? 第 1 章 Access 2000 クライアント/サーバー開発の理解 データベース レプリケーション ソリューション データベース レプリケーション ソリューションは通常、ネットワークに断続的に接続するユーザー (ラップトップ ユーザーなど) や低速の広域ネットワーク (WAN) に接続しているユーザーの間で Access データベース (.mdb) を共有するために使用します。データベース レプリケーションは、複数の場所にある Access データベースのすべてのコピーに対して、変更されたデータやデータベース設計への変更のみを配布するという処理です。レプリケーションでは、"デザイン マスター" と呼ばれる単一のオリジナル データベースの、"レプリカ" と呼ばれる 1 つまたは複数のコピーが作成されます。デザイン マスターとそのレプリカを合わせて "レプリカ セット" と呼びます。"同期" と呼ばれる処理を実行すると、オブジェクトやデータへの変更がレプリカ セットのすべてのメンバーに配布されます。 データベース レプリケーション ソリューションにおけるデータの信用性は、同期の頻度とユーザー間の接続速度によって制限されます。データベース レプリケーション ソリューションは通常、低速または断続的な接続を常とする状況で使用します。したがって、データベース レプリケーションは、割り当てられた地域のいくかの地区を扱う外回りの営業担当者など、ユーザーどうしで競合が起きる可能性が低い場合に最適に機能します。Access/Jet レプリケーション ソリューションは、レプリケーション セットのメンバーをローカル エリア ネットワーク (LAN) 上の複数のファイル サーバーに配置することで、ネットワーク間の負荷分散として使用することもできます。 レプリカの実例 第8回できたDBはみんなで使おう 部分レプリカ DAO3.5の新機能 ―部分レプリケーション― ● レプリケーションとは? 例えば複数のパソコンから同じMDBを共有する方法として、共有ディレクトリ上にMDBを置いて、ネットワークを通して使う方法があります。しかし、この方法では、MDBを使うときにネットワークがつながっていなければいけません。 レプリケーションは、あるMDBを元にレプリカと呼ばれるコピーを作成し、その複数のコピー間で、データやオブジェクトの更新内容を交換して、内容を同期します。そして、同期処理中以外はネットワークがつながっていなくてもレプリカが使えるので、結果的に1つのMDBを共有しているのと同じようにアプリケーションから扱えます。 レプリカ上のレコードへの追加、削除および変更は、次回のレプリケーション実行時に相手側に反映されます。もし、同じレコードが両方で更新されたときは、レプリケーションの競合が発生します。このときDAO3.5は、バージョン番号の多い(変更が多い)レプリカの内容を採用し、バージョン番号も同一のときは、ReplicaIDの小さいレプリカの内容を採用します。採用されなかったレプリカは、競合テーブルにレコードの情報が格納されるので、競合の解消方法をプログラムで変更できます。 ● 部分レプリケーション レプリケーションは、Visual Basic 4.0のDAO3.0でも使うことができました。しかし、DAO3.0では、フルレプリケーションといって、テーブルやオブジェクトごとのレプリケーションのみサポートしていました。RDO3.5からは、部分レプリケーションといって、MDBに含まれるレコードの一部分のみレプリケーションが行えるようになりました。 部分レプリケーションを使えば、レプリカの配付先ごとに、必要な部分のみを同期するので同期処理のパフォーマンスが向上します。さらに、重要データを関係ない部署に配付したレプリカに転送しないように指定できます。 部分レプリケーションを行うためには次のような手順が必要です。 デザインマスターの作成(リスト2) 部分レプリカの作成(リスト3) レプリケーションの実施(リスト4) サンプルで(1)を行うとデザインマスターにs_Generationフィールドが追加されます。このフィールドはレプリケーションの管理に使うフィールドで、レコードが変更されると0に設定されます。 なお、Microsoft Access 97 Developer Editionにはレプリケーションマネージャーというレプリカデータベースの作成や維持をするユーティリティが含まれていますが、Visual Basic 5.0には含まれていません。Visual Basic 5.0でも、DAO3.5を使って同様のものを作れますが、受託開発でレプリケーションを使うときは、最低でも開発環境と実行環境のそれぞれ1台づつにAccess97 Developer Editionを導入しておくのが得策かもしれません 以下広告
https://w.atwiki.jp/swdp2p2/pages/12.html
環境作成 とりあえず勉強のためにやりたい人向けですがXamppがオススメです。 Apache、PHP、MySQLなど必要なものが全部入ってるので便利です。 注意としては、サービスとして登録しないことです。 サービスに登録すると様々な不具合が生じるそうです。(著者未確認) PEAR 環境が整った方は、PEARを入れましょう。 PEARはPHPライブラリ群です。詳しくはここ。 インストール方法は非常に簡単です。ただし、Perl5.x.xの方に限ります。 PHPをインストールしたディレクトリ(c \php,c xampp\php等)内にgo-pear.batというバッチファイルがあります。 これを実行します。インストール内容は分からない人はとりあえず、止まったらエンターキーで大丈夫でしょう。 インストール後、PEARのライブラリであるMDB2をインストールします。これはデータベースの操作を楽にしてくれるライブラリです。 まず、コマンドプロンプト(Win+Rでcmdと入力)を開き、PHPのインストールしたディレクトリに移動し(cd c \php, cd c \xampp\php等)、 pear install MDB2 pear install MDB2#mysql とそれぞれ入力することでインストールが実行されます。 他にも様々なライブラリがあるのでPEARのHPで探してみるといいかもしれません。
https://w.atwiki.jp/vram/pages/15.html
Accessで一般的なファイル(*.mdb)を簡単に読み込む方法ってありそうでないらしい。 じゃあ作ってみようと思って2日かからずに作った適当なソフトです。 インストーラとかもありません。 mdbファイルを開いたときにアプリケーションを選ぶ画面でこのアプリケーションを選んでおけば 以降はダブルクリックで開くことができるでしょう。 なおできるのはテーブルの閲覧のみです。 ダウンロード
https://w.atwiki.jp/swdp2p2/pages/17.html
コラムテーブルの中身を表示する データベースクラスを作ってみる接続の手間を省く 切断の処理も省く 使用する処理を実装する コラム テーブルの中身を表示する PHPを使ってMySQLのあるテーブルの内容を出力するというプログラムを書いてみたいと思います。 データベースの仕様として、テーブル名はmember、キーは、id(主キー), name, passの3つとします。 まず最初にデータベースにテーブルを作成します。以下のようなSQL文を入力します。 CREATE TABLE IF NOT EXISTS `test`.`member` ( `id` INT NOT NULL , `name` VARCHAR(45) NOT NULL , `pass` TEXT NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB 次に、作成したテーブルにデータを挿入していくのですが、今回は試用ですので、直にSQL文で打ち込みます。 insert into member value(1, 'tester1', 'hogehoge1'); insert into member value(2, 'tester2', 'hogehoge2'); insert into member value(3, 'tester3', 'hogehoge3'); insert into member value(4, 'tester4', 'hogehoge4'); insert into member value(5, 'tester5', 'hogehoge5'); テーブルにデータが挿入されているか確認をします。 mysql select * from member; +----+---------+-----------+ | id | name | pass | +----+---------+-----------+ | 1 | tester1 | hogehoge1 | | 2 | tester2 | hogehoge2 | | 3 | tester3 | hogehoge3 | | 4 | tester4 | hogehoge4 | | 5 | tester5 | hogehoge5 | +----+---------+-----------+ 5 rows in set (0.00 sec) これでMySQL側の作業は終了です。 さて、今度はPHPでプログラムを書いていきたいと思います。 内容の表示であるView部分はSmartyテンプレートを使用します。 今回使用したテンプレート(ShowSqlInfo.tpl)の中身は以下になります。 !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http //www.w3.org/TR/html4/loose.dtd" html head meta http-equiv="Content-Type" content="text/html; charset=windows-31j" META http-equiv="Content-Style-Type" content="text/css" title データベースの内容 /title /head body h2 データベースの詳細 /h2 table border="1" tr td id /td td user /td td pass /td /tr {* データの挿入 *} {foreach from=$data key="key" item="value" name="list"} tr td {$value- GetId()} /td td {$value- GetUserName()} /td td {$value- GetPass()} /td /tr {foreachelse} {/foreach} /table /body /html 最後に、PHPにおける処理部分ですが、データベースの内容を示すクラスを一つ定義しました。 あとは、PHPでやった内容と変わらず、while文ですべての内容を取得しています。 ?php // MySqlの内容を表示するphp require_once "MDB2.php" ; require_once "DBInfo.php"; require_once "Smarty/smarty.class.php"; // Smartyオブジェクトの生成 function CreateSmartyObj() { $smarty = new Smarty(); // パスの設定 $smarty- template_dir = "template"; // テンプレートディレクトリのパス $smarty- compile_dir = "compile"; // コンパイルディレクトリのパス return $smarty; } // データベースへ接続 $mdb2 = MDB2 connect( "mysqli //ユーザ名 パスワード@ホスト/member" ); // エラー処理 if(PEAR isError($mdb2)) { die($mdb2- getMessage()); } // クエリ実行 $sql = "select * from member"; $res = $mdb2- query($sql); // エラー処理 if(PEAR isError($res)) { die($res- getMessage()); } $ary = array(); while( ( $row = $res- fetchRow() ) ) { $tmp = new CDBInfo(); $tmp- SetId($row- id); $tmp- SetUserName($row- name); $tmp- SetPass($row- pass); array_push($ary, $tmp); } // データベースへの接続を切る $mdb2- disconnect(); $smarty = CreateSmartyObj(); $smarty- assign("data", $ary); $smarty- display("ShowSqlInfo.tpl"); ? DBInfo.php ?php class CDBInfo { protected $m_Id;// ユーザid protected $m_Name;// ユーザ名 protected $m_Pass;// パスワード function __construct() { $m_Id = 0; $m_Name = NULL; $m_Pass = NULL; } public function SetId($id) { $this- m_Id = $id; } public function GetId() { return $this- m_Id; } public function SetUserName($name) { $this- m_Name = $name; } public function GetUserName() { return $this- m_Name; } public function SetPass($pass) { $this- m_Pass = $pass; } public function GetPass() { return $this- m_Pass; } } ? データベースクラスを作ってみる PEARのMDB2ライブラリを用いたデータベースを扱う簡易クラスを作ってみたいと思います。 いちいち、エラーチェックや決まった変数を毎度作成するのは面倒というものです。 こういった使用するものが決まったものの集まりをクラスにしてしまいましょう。 毎回出てくる変数としては、データベースに接続する変数($mdb2、$db等)と、クエリの結果を受け取る変数($res等)をクラス内に定義してしまいましょう。 class DBAccess { protected $m_Db;// データベース接続変数 protected $m_Result;// クエリ用変数 } protectedすることでクラスのメンバ変数は外部からアクセスできないようになっています。(継承先は除く) 接続の手間を省く まず、ログインする関数を作りましょう。 定数として以下のものを用意します。 const m_Sql = "mysqli";// 使用するSQL const m_User = "ユーザ名";// ユーザ名 const m_Pass = "パスワード";// パスワード const m_Host = "localhost";// ホスト名 const m_DbName = "DB名";// データベース名 const m_TblName= "テーブル名";// テーブル名 クラス内の定数にはself m_Sqlのようにself を用いアクセスします。 では、コネクト関数を実装します。 // データベース接続 public function Connect() { // 接続文字列を作成 $str = sprintf("%s //%s %s@%s/%s", self m_Sql, self m_User, self m_Pass, self m_Host, self m_DbName); // 接続処理 $this- m_Db = MDB2 connect($str); // エラー処理 if( PEAR isError( $this- m_Db ) ) { exit("以下の接続が失敗しました br " .$str); } } このコネクト関数をコンストラクタで呼び出してやれば、クラスを生成するだけで接続でき便利です。 // コンストラクタ function __construct() { // メンバ変数の初期化 $this- m_Db = NULL; $this- m_Result = NULL; // 接続 $this- Connect(); } 切断の処理も省く 上記の接続と同様ですので、プログラムのみ示します。 // データベース切断 public function DisConnect() { $this- m_Db- disconnect(); } // デストラクタ function __destruct() { if($this- m_Db != NULL) { $this- DisConnect(); } } 使用する処理を実装する 最低限ということで、クエリを実行する関数(Query)、レコードを取得する関数(FetchRow)、クエリ結果のレコード数を取得する関数(numRow)を用意しました。 実装は非常に簡単です。今までやってきたことをクラス内に内包しているだけです。 // レコードを取得し返す public function FetchRow() { $this- Error(); return $this- m_Result- fetchRow(MDB2_FETCHMODE_OBJECT); } // クエリ結果のレコード数を返す public function numRows() { $this- Error(); return $this- m_Result- numRows(); } // クエリ実行 public function Query($sql) { // クエリの実行し結果を取得 $this- m_Result = $this- m_Db- query($sql); // エラー処理 if( PEAR isError($this- m_Result) ) { exit("以下のクエリが失敗しました br " .$sql); } } 今回作成したプログラムは以下になります。 DBAccess.php
https://w.atwiki.jp/ma-100140/pages/34.html
SQLServer と他のDBとのデータ連携 100行おきにBEGIN TRANSACTIONとCOMMITの行を挿入する Access mdb と adpの違い mdbからadpへアップサイジングする時の注意事項をまとめます。 違い 項目名 mdb adp 説明 like句 like xxx* like xxx% 日付の引用符 #2011/09/16# 2011/09/16 UPDATE文中でのINNER JOIN UPDATE T_tab1 INNER JOIN tab2 ON (T_tab1.ID = tab2.ID) SET T_tab1.金額 = tab2.金額; UPDATE T_tab1 SET T_tab1.金額 = tab2.金額 FROM T_tab1 INNER JOIN tab2 ON (T_tab1.ID = tab2.ID) ストアードプロシージャー作成時のエラー Msg 208, Level 16, State 6, Procedure Q_XXX, Line 10 Invalid object name dbo.Q_XXX . SQL Server Management Studio Expressを使って、既存のPROCEDUREを見ながら作成しました。 構文のチェックをしても大丈夫ですが、いざ、実行すると上記エラーになります。 ちなみに定義は set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO -- ============================================= -- Author Author,,Name -- Create date Create Date,, -- Description Description,, -- ============================================= ALTER PROCEDURE [dbo].[Q_XXX] @NVCHValue nvarchar(50) AS BEGIN UPDATE T_XX1 SET T_XX1.XX2 = @NVCHValue END よくよく考えてみると、何でALTERなのか? ここをCREATEに修正してみると、見事にうまく行きました。 どうもManagement Studioでは既存のProcedureを開いたからALTERになっていただけのようです。 新規の作成はCREATEです。
https://w.atwiki.jp/spacekeiko/pages/16.html
リンク集 リサーチ会社 リサーチ会社リスト http //japan.internet.com/survey/company/ http //www.mresearch-media.net/ マーケティングデータバンク http //www2.mdb-net.com/index.html 各種レポート マーケティング・データ・バンク http //www.jmar.co.jp/MDB/index.html クロスマーケティング:自主調査 http //www.cross-m.co.jp/report/index.html 情報源 関東経済産業局:リンク集 http //www.kanto.meti.go.jp/link/ 北海道経済産業局:リンク集 http //www.hkd.meti.go.jp/link/index.htm Venture Now [[http //www.venturenow.jp/]]