掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
データベースを初期化するには? (ID:25208)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になります。 WindowxXP/Delphi7 Professional 現在、BDE 経由で Paradox に接続しています。 Borland より今後はなるべく BDE および Paradox を使用しないようにとのことなので、 ADO および Jet4.0 (MS-ACCESS/mdb) を使用するようにプログラムを書き換えています。 具体的には、全ての BDEの"Table1" を ADOの"ADOTable1" に変更しました。 これでほぼ全て問題なく動作しているようです。 しかし、データベースの初期化する処理がよくわかりません。 下記が今まで BDE/Table1(Paradox) で実行していたコードです。 データベースを空にした後、データベースの圧縮(コンデンス)を実行したいのです。 ※データベースを空にしただけではデータベースのサイズが小さくならないため procedure TForm1.Button1Click(Sender: TObject); var Props: CURProps; hDb: hDBIDb; TableDesc: CRTblDesc; W1: Integer; begin W1 := MessageDlg('新規作成しますか?', mtInformation, [mbOK, mbCancel], -1); if (W1 <> 1) then exit; TableLc4.Close; TableLc4.ReadOnly := False; TableLc4.Exclusive := true; TableLc4.EmptyTable; TableLc4.Open; // テーブルのカーソルハンドルの取得 DbiGetCursorProps(TableLc4.Handle, Props); // 構造体を空白にする FillChar(TableDesc, sizeof(TableDesc), 0); // テーブルのカーソルハンドルから,データベースハンドルを取得 DbiGetObjFromObj(hDBIObj(TableLc4.Handle), objDATABASE, hDBIObj(hDb)); // テーブルディスクリプタにテーブル名を格納 StrPCopy(TableDesc.szTblName, TableLc4.TableName); // テーブルディスクリプタにテーブルの形式を格納 StrPCopy(TableDesc.szTblType, Props.szTableType); // テーブルディスクリプタの Pack オプションを TRUE に設定 TableDesc.bPack := true; // テーブルをクローズし,再構築を終了 TableLc4.Close; // DbiDoRestructure 関数の呼び出し DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, false); TableLc4.Exclusive := False; end; これと同様の処理を ADO/ADOTable1 (Jet4.0 MS-ACCESS/mdb) で実行するためのソースコードまたはヒントをご教示いただけないでしょうか。 よろしくお願いします。 ※説明が下手で申し訳ありません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.