2011/08/31

access2010 HotFix KB2544022 -2-

2011/06のCUで、SP1に含まれていない件だけど、2011/08のCUがまだなのでちょっと確認
Description of the Access 2010 hotfix package (access-x-none.msp): June 28, 2011
これに含まれる修正は次の通り。
  1. 非連結コントロールに規定値プロパティ(DefaultValue)が設定されているとき、コントロールをNull/""にすることができない。
  2. インポート/エクスポートの定義を使用したインポートエクスポートマクロアクションが失敗する。
カスタムActiveXコントロールとadpサーバフィルタの件があるけど確認はしない。

2011/08/28

access2010 遅いのではないのか? -7-

SQL Azureから1,000,000レコードをダウンロードしてローカルテーブルへ追加していたとき。
そういえば、トランザクション使うことでパフォーマンスがあがったっけなと使ってみたのだけど、どの程度効果があるのか改めて確認してみた。最近のH/Wのスペックはかなりよいはずから気にすることもないのかなと思っていたけど、思いのほか効果はあるようだ。

2011/08/25

access2010 SP1 KB2533794 見落としていたKBの更新

以前のポストしていたのだけど、8月になってKB2533794が更新されていたという。

要はSP1でコンパイル済みとするとRTMでは動きませんよということ。RTMでコンパイル済みととした場合、64bitSP1では動きません。ということか?
あぁ、確かに表通りになった。 ついでに32bitSP1がクラッシュするようになった。あばばばぁ 。とりあえず様子見て修復インストールしてみるか。

2011/08/22

access2010 SQL Azureいってみようか -15-

どんな感じで動くかなと、あれこれしたことを忘れないうちに。


リンクテーブルであれこれしたときトラフィックは発生するのだけど、思ってたほどではないなと思った。きっちりフィルタしておけばよいか。でも、接続情報が平文というのがネック。

2011/08/19

access2010 SQL Azureいってみようか -14-

まぁね。さくっとできることもある。あるのか?

2011/08/18

access2010 SQL Azureいってみようか -13-

同時実行制御ってことを考えてみた。
楽観的同時実行制御ってこと。ODBCリンクテーブルで使えるなら、まぁなくてもいい話
CREATE TABLE dbo.table01
(
    ID  int IDENTITY NOT NULL,
    F01 nvarchar(20) COLLATE Japanese_CI_AS NOT NULL,
    TS  timestamp NOT NULL,
    CONSTRAINT PK_table01 PRIMARY KEY CLUSTERED 
    (
        ID ASC
    )
)
GO

CREATE UNIQUE NONCLUSTERED INDEX idx_F01 ON dbo.table01 
(
    F01
)
GO
さらっと作ったテーブルのフィールドは一意であることにしてみた

2011/08/16

access2010 SQL Azureいってみようか -12-

前回のテーブル同期に使ったパススルークエリにストアドプロシージャを使ってみる。
ローカルのtimestamp最大値を引数として渡し、比較することで更新追加されたレコードを取得する目論見。
名前の付け方にいつも悩む。そしていつも後悔。

2011/08/15

access2010 SQL Azureいってみようか -11-

データ転送に掛るコストってどれぐらいになるのだろうと考えるとモヤモヤする。
テーブルの種類用途によってはリンクテーブルではなくてもよいのではないか。多分ローカルテーブルを使ってやりくりは転送料にかかわらずでてくるだろうから、任意のタイミングでSQL Azureとローカルのテーブル同期ができればよいということもあるだろう。
 この二つのテーブルを同期させたい。といっても一方通行だけど。

2011/08/13

access2010 SQL Azureいってみようか -10-

エラートラップの時です。呼び出しが失敗しました。(3146)とは。

で、なんのエラーなの?ってなるわけで。SQL Azureに限った話ではないけど。

access2010 SQL Azureいってみようか -9-

パススルークエリを使ってみることにする。
ODBCリンクテーブル同様、パスワードは平文で保存だからなんでもかんでもということにはならないのだけど。
 レコードの編集はできませんが。

2011/08/12

access2010 access2007 アプリケーションウィンドウの中央寄せ -1-

うむ。これは使うことあるので加工させてもらった。
元ネタは、Accessウィンドウをディスクトップの中央に表示する(hatena chips)
マルチモニタ環境で使いたかったので。だけどデュアルモニタまでしか確認してない。

access2010 SQL Azureいってみようか -8-

まだ、ODBCリンクテーブルであれこれしてる。

OCBCの再表示の間隔 で設定された時間経過時に、表示されているレコードセットの表示は最新の内容に更新される。これは Requery ではない。
1500秒 = 25分なのだけど、SQL Azureは時間経過しているアイドルな接続を切断してくることがあるはずだからそのあとの表示レコードセットの更新が行われるのだろうか?だけど、これは確かめる予定はない。同時実行制御を考えるべきだと思うから。

2011/08/11

access2010 SQL Azureいってみようか -7-

まぁとりあえず進めてみる。ODBCリンクテーブルで使ってみる。
セキュリティ的にどうなんだってことはついて回るけど、それ以上にデータ転送量とかもかかわることになりそうだ。

2011/08/10

access2010 SQL Azureいってみようか -6-

SSMA for Accessを使ってみて。
まぁ、便利かなと。移行先がSQL Azureである場合、SSMSではGUIが使えないから横着な私には便利。完全に仕上げるにはSSMSでぐりぐりっと手直しは当然必要なのだけど、SQL Azureを理解していくうえでAccessでの設定がSQL Azureではどのようになるのか見比べながらっていうことをちょっとやってみたりできるしなと。
ColumnのCollationを設定できればなぁと思うのだけど、設定するところやその方法は見つからない。SSMAである程度のところまで作っておいてSSMSで最後手直しして、それ以降の調整はいずれにせよSSMSってことでしょうか。
AccessからSQL Azure直接ではなく、Access→オンプレミスSQL Server(en仕様)→SQL Azureっていう段取りもよいのかな。
 データ型の変換マッピングがこんな感じで。プロジェクトごとのデフォルト設定ができる。
 プロジェクト内でソーステーブルごとに変更もできる。
以下、設定項目

2011/08/09

access2010 SQL Azureいってみようか -5-

SSMA for Accessを使って、タスク管理.accdbをSQL Azureに移行してみた。
最新のSSMAは、Accessから直接SQL Azureにマイグレーションできるようになっているので、必ず更新しておく。何はともあれ作業の開始。
 ウィザードでやってしまってもよいのだけど、どう考えてもうまくいくわけがないので、ウィザードを使用しないで進めてみる。

2011/08/06

access2010 SQL Azureいってみようか -4-

まだまだSSMSから離れられない。それだけ大事なことってことでしょう。
前回作成したtestdb01adminというアカウントでログイン

テーブルなど作ってみる。

2011/08/05

access2010 SQL Azureいってみようか -3-

なかなかAccessの話にならない。
ログインとユーザーを作成する。
とりあえず管理者ログインができている状態。なので、このあと作業に使うログイン/ユーザーをいくつか仕込んでみる。

access2010 SQL Azureいってみようか -2-

とりあえずデータベースを新規作成するところまで。
何はともあれ管理ポータルから

2011/08/04

access2010 SQL Azureいってみようか -1-

Access2010 + SQL Azureを試してみる。まずは準備とか。
SQL Azureを試してみる環境が整ったのであれこれしてみる。SQL AzureはSQL Server2008ベースというのをどこかで読んだ。クラウド上のSQL Serverっつーことなので、これをバックエンドとすることでインターネットに接続されていればデータの共有が可能ってことになる。SQL Azure+Access+インターネットが揃えばさらっと始められる。
セキュリティについては、SQL Server認証/SQL Azureファイアウォール/暗号化通信(Encrypt=True) 。まずはクライアント側は固定IPが良いかな。 セキュリティとか気にするならそもそも選択しなければいい。割り切っていこう。
SQL Azureを使うのにおいくら必要なのか。料金表を見ると、従量課金プラン容量1GBで1000円程。これに加えてデータ転送量約17円/GB、上り分は課金されない。運用など間接コスト踏まえれば高くはないかな。つか、安い場合もある。
とりあえず必要なツールとかのリンク。基本的には新しいものを使う。
SQL Server Management Studio(SSMS)
SQL Server Migration Assistant(SSMA) for Access
SQL Server Native Client
SQL Server 2008 R2 自習書シリーズ
Windows Azure Platform
SQL Azure(MSDN)

2011/08/02

access2010 Webデータベース その75 処理途中で接続が切れたら..

そういえば、ちゃんと確認していなかったなと。
Webデータベースだけということではなくて、SharePointリストリンクテーブルのレプリケーションについて。SharePointリストとの同期はAccessの中の人が組み込みの処理で実行してくれるのからお任せの方向でよいのだけど、処理途中でサーバへの接続が切れてしまったらどうなるのだろうということ。
Accessのオプション→カレントデータベースにこのようなプロパティがある。各々の効果についてはやってみれば明白だからよいとして、SharePointリストのリンクテーブルはキャッシュが肝になっている。これがなかなか高速で、以前のバージョンに比べると使用するのにあまり抵抗感がなくなってきていると思う。まぁこれはいいか。
そこで、クライアントサイド(DAO)とサーバサイド(Named DataMacro)でレコード(SharePointアイテム)を追加していくとき、接続が切れたらどうなるのかを見ておく。