AccessMDBに関する質問です – プログラミング – Home

AccessMDBに関する質問です
 
通知
すべてクリア

[解決済] AccessMDBに関する質問です


えりたまSpecial
 えりたまSpecial
(@えりたまSpecial)
ゲスト
結合: 10年前
投稿: 11
Topic starter  

こんにちわ えりたまSpecialです。

AccessMDBに関する質問です。

環境はWin7Professional+VS2005+Access2003です

新規にテーブルを追加した際に規定値に0をセットする方法がもしありましたら

ご教授願えれば幸いです。

現状は空欄で新規作成されるので、別途マニュアルで0をセットしているのですが

データ数が多いと大変なのとセットし忘れが発生する可能性がありまして

 

たとえば追加したいテーブルの定義を

#pragma once      // 二重インクルードを避けるため
#include <afxdb.h>     // データベース

class CPocketRate : public CRecordset
{
public:
 CPocketRate(CDatabase* pDatabase = NULL);
 DECLARE_DYNAMIC(CPocketRate)

// フィールド/パラメータ データ

// 次の文字列型は (記載されていれば) データベース フィールドの
// 実際のデータ型を反映しています。CStringA は ANSI データ型を、また CStringW は Unicode データ型を
// 反映しています。これは、ODBC ドライバが不必要な変換を
// 行わないようにするためです。これらのメンバを CString 型に変えて、
// ODBC ドライバが必要な変換をすべて行うようにすることも可能です。
// (注 : Unicode とこれらの変換の両方をサポートするためには、
// ODBC ドライバのバージョン 3.5 かそれ以降のものを使う必要があります)

 int m_PRODUCT_NO;
 int m_CAMERA_NO;
 int m_TYPE;
 int m_LOW;
 int m_MID;
 int m_HIGH;

// オーバーライド
 // ウィザードで生成された仮想関数のオーバーライド
 virtual CString GetDefaultConnect(); // 既定の接続文字列
 virtual CString GetDefaultSQL();   // レコードセットの既定の SQL
 virtual void DoFieldExchange(CFieldExchange* pFX); // RFX サポート

// 実装
#ifdef _DEBUG
 virtual void AssertValid() const;
 virtual void Dump(CDumpContext& dc) const;
#endif

};

として、プログラムで新規追加する箇所を

 CPocketRate PR;

 try{
  PR.Open();
  PR.Close();
 }
 catch(CDBException* pEx){

  try {
   // POCKET_RATEテーブルが存在しないので新規に作成
   CDatabase db ;
   CString sql;

   // SQL文作成
   sql = "CREATE TABLE POCKET_RATE (";
   sql = sql + "PRODUCT_NO SMALLINT,";
   sql = sql + "CAMERA_NO SMALLINT,";
   sql = sql + "TYPE SMALLINT,";
   sql = sql + "LOW SMALLINT,";
   sql = sql + "MID SMALLINT,";
   sql = sql + "HIGH SMALLINT,";
   sql = sql + "CONSTRAINT PK_POCKET_RATE PRIMARY KEY (PRODUCT_NO))";

   // SQL実行
   db.Open("AAA",FALSE,FALSE,"ODBC;DSN=AAA");
   db.ExecuteSQL(sql);

  }
  catch(...) {
   // 既にフィールドが存在する場合
   if(PR.IsOpen()) {
    PR.Close();
   }
  }
 }

とコーディングしています。MDBにはODBCでアクセスするようにしています。

 

何卒宜しくお願い致します。

 

 

 

 

 

 

 

 

 


引用未解決
えりたまSpecial
 えりたまSpecial
(@えりたまSpecial)
ゲスト
結合: 10年前
投稿: 11
Topic starter  

えりたまSpecialです。いつもおせわになっております。

投稿の仕方がよくまだ理解していないのでなぜか[解決済み]になって投稿してしまいました。

アドバイスお待ちしております。

宜しくお願い致します。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました