ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[Microsoft Access] データベースウィンドウの更新

 
Application.RefreshDatabaseWindow
http://support.microsoft.com/kb/160950/ja
文書番号: 160950 - 最終更新日: 2003年11月10日 - リビジョン: 3.0
[AC97] データベース ウィンドウのオブジェクトの表示を最新にする方法

[未分類] Google +1 ボタン 改行させないようにするには

 
Google +1 ボタン 改行させないようにするには
推奨されるのは1番目の方法です。ただし、IE7以下の対応が必要なら2番目の方法を採る必要があります。
先に2番目の方法から説明します。
次のように g:plusone 要素をクラス名を付けたSPAN要素で囲み、

<span class="HOGE"><g:plusone href="..."></g:plusone></span>

CSSで

.HOGE div {*display: inline !important;}

と指定します。このとき !important 宣言もきちんと付けて下さい。
このスタイル指定では IE7 以下のドキュメント・モードにのみ適用させるため、アスタリスクハックを行っています。
何故、これで直るかの説明は省略します。以下のサイトを参考にして下さい。

Google+1ボタンがIEだと折り返して表示されることへの対処(暫定版)
http://ameblo.jp/itboy/entry-10967359379.html


「標準モード」と「互換モード」
HTMLドキュメントは、「標準モード」と「互換モード」のどちらのレイアウトモードが適用されるかによってレンダリング結果が異なります。
次に説明しますが Google +1 ボタンで改行が発生する現象にはこれが関係しています。
レイアウトモードの詳しい説明は、以下を参考にして下さい。

標準モードと互換モードについて
http://www.dspt.net/html_tag/mode.html
'Standards' vs 'Quirks' modes
http://www.w3.org/International/articles/serving-xhtml/Overview.en#quirks

Google +1 ボタンで行が折り返す原因
Google +1 ボタンは、スクリプトによって display: inline-block スタイルが指定された DIV要素に展開されます。
Firefox で開く場合には、このスタイル指定によってボタンがインラインで表示されます。
しかし、Internet Explorer でドキュメントが互換モードなどで表示されている場合、このスタイルが適用されません。
IE には「互換モード」と IE のバージョン毎の「標準モード」の属性値を持つドキュメントモードがあります。
display: inline-block のレンダリング結果は、このドキュメントモード毎に異なります。
下表にその対応状況を示します。
ドキュメントモードdocument.compatModedocument.documentModedisplay: inline-block
互換モード"BackCompat"5改行する
標準モード(IE7)"CSS1Compat"7改行する
標準モード(IE8)"CSS1Compat"8改行しない
標準モード(IE9)"CSS1Compat"9改行しない

Internet Explorer 9 では、開発ツール(F12で開く)を利用すれば、ドキュメントモードを切り替えることができます。
以下のサンプルで実際の動作を確認できます。


対処
Google +1 ボタンを改行させないようにするには、適切な文書型宣言を記述するか、METAタグを使って IE8 以上の「標準モード」で表示させることです。

IE にはツール → 互換性表示設定というものがあります。この設定次第で対象のページが互換モードで開かれる場合があります。

[トラブルシューティング] Windows Update (KB2647516, KB2656356, KB2618444) 80070011 エラー

 
レジストリに設定されているプログラムフォルダのパスが、
実際のパスではなく、ジャンクションなどである場合、
Windows Update に失敗することがある。
これが起こるのは、Program Files フォルダを別ドライブに移動し、
C:\Program Files のジャンクションを作成している場合などである。

対処
レジストリ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
ProgramFilesDir を実フォルダのパスへ書き換え、WindowsUpdate を再実行する。

参考
以下、特に 回答 No.4 が参考になる。
http://oshiete.goo.ne.jp/qa/6192528.html

[正誤表] JavaScript 第5版 初版第9刷 正誤表

 
前書きにある通り、サンプルコードは原著のサイトからダウンロードできます。
次のURLを開き、右側のメニューにある Download Example Code を辿ってみてください。
http://www.oreilly.com/catalog/jscript5/

上のリンクからも辿れますが、以下のリンク先に原著の正誤情報が掲載されています。
本記事に示す正誤表のいくつかの項目は、このリンク先が情報源になっています。
なお、原著の正誤情報は数が多いので、すべて拾いきれてません。

Confirmed Errata
http://oreilly.com/catalog/errata.csp?isbn=9780596101992

Unconfirmed Errata
http://oreilly.com/catalog/errataunconfirmed.csp?isbn=9780596101992



以下、「JavaScript 第5版 初版第9刷」で見つかった誤記です。
一部、補足めいたものもあります。

p.113
var undefs = [,,];   // 2個の要素を持つ配列。両要素とも未定義。
→ Firefox は2個だが、Internet Explorer は3個の要素が出来る。

p.119
2番目の引数を省略すると、指定された開始位置から配列の最後までの要素がすべて削除されます。

→ 2番目の引数を省略すると、Firefox では本文にあるとおり、
指定した位置以降のすべての要素を削除するが、
Internet Explorer 9 や Opera では、何も削除しない。

p.136
(誤)  if (window.screenLeft) { // IE など

(正) if (window.screenLeft !== undefined) { // IE など
Geometry.getWindowX = function() { return window.screenLeft; };
Geometry.getWindowY = function() { return window.screenTop; };
}
(誤) else if (window.screenX) { // Firefox など
(正) else if (window.screenX !== undefined) { // Firefox など
Geometry.getWindowX = function() { return window.screenX; };
Geometry.getWindowY = function() { return window.screenY; };
}
※ IE も Firefox もフルスクリーン・モード(F11押下)で Geometry オブジェクトを初期化すると、
  window.screenLeft も window.screenX も 0 になり、if条件を満たせなくなってしまうため。

p.139
function copyUndefinedProperties(/* オブジェクト */ from, /* オブジェクト */ to) {

for(p in from) {
(誤) if (!p in to) to[p] = from[p];
(正) if (!(p in to)) to[p] = from[p];
}
※ !演算子は、in 演算子よりも優先度が高いので、括弧が必要。
 元のコードでは プロパティ名 p に対して !p は常に falseに評価され、
 "false" という名前のプロパティを to オブジェクトが持たない場合、
 条件判定は常にfalseとなり、持つ場合は常にtrueとなる。

p.152
しかし、コンストラクタから別のオブジェクトを返すことは可能です。
そうすると、返されたオブジェクトがnew式の値になります。
この場合、thisの値であったオブジェクトは破棄されます。

return {a:1, b:2} のようにオブジェクトを返す場合の話。
 基本データ型の値をリターンする場合は、そのリターン値は捨てられる。

p.168
complexNumbers.sort(new function(a,b) { return a.compareTo(b); });
complexNumbers.sort(function(a,b) { return a.compareTo(b); });

p.171
例9-3 JavaScript クラスのサブクラス化の例(続き)
(誤)
// プロトタイプオブジェクトは、Rectangle()コンストラクタと一緒に生成され
// るので、

(正)
// プロトタイプオブジェクトは、Rectangle()コンストラクタによって生成され
// るので、

※ Since the prototype object was created with the Rectangle( ) constructor,
の「with」を「一緒に」と訳してしまうと意味が通じなくなる。

p.184
(誤)
for(var i = 0; i < borrows.length; i++) {

var c = data.borrows[i];
borrows[i] = c;
(正)
for(var i = 0; i < borrows.length; i++) {

var c = borrows[i];
※ defineClass 関数仕様には、引数オブジェクトの borrows プロパティには、
 「コンストラクタ関数、または、コンストラクタ関数の配列」が指摘できると書かれているが、
 修正前のコードでは、関数単体を指定することができない。
 例えば
    var PositionedRectangle = defineClass({

name: "PositionedRectangle",
...
borrows: [GenericEquals]
});
 は動作するが、
    var PositionedRectangle = defineClass({

name: "PositionedRectangle",
...
borrows: GenericEquals // 配列ではなく関数単体を指定した場合エラー。
});
 は動作しない。
 providesプロパティの指定方法も同様の仕様であり、そちらは問題なく動作したので、
 訂正後のコードは、provides の処理方法に合わせた。

p.227
(誤) java.math.BigDoubleまで含まれます。
(正) java.math.BigDecimalまで含まれます。

p.229
Swing GUIの起動方法が誤っている。
    public class Keys {


public static void main(String[] args) throws ScriptException, IOException
{
// スクリプトを実行するために「ScriptEngine」を取得する。
ScriptEngineManager scriptManager = new ScriptEngineManager();
ScriptEngine js = scriptManager.getEngineByExtension("js");

// スクリプトを実行する。実行結果は捨てる。ここで興味があるのは、
// スクリプト中で関数を定義することだから。
js.eval(new FileReader("listener.js"));

// Invocableにキャストして、KeyListenerを実装するオブジェクトを取得する。
Invocable invocable = (Invocable) js;
(修正) final KeyListener listener = invocable.getInterface(KeyListener.class);

// このKeyListenerをGUIで使用する。
(追加) SwingUtilities.invokeLater(new Runnable() {
(追加) public void run() {
JFrame frame = new JFrame("Keys Demo");
frame.addKeyListener(listener);
frame.setSize(200, 200);
frame.setVisible(true);
(追加) }
(追加) });
}
}
Swingの起動方法については以下の記事が参考になる。特に Java Tutorials の次の記述に注意。
Why does not the initial thread simply create the GUI itself? Because almost all code that creates or interacts with Swing components must run on the event dispatch thread.
なぜ、最初のスレッドが単純にGUI自体を作成しないのか、それは、Swingコンポーネントを作成するか、相互作用するほぼすべてのコードは、イベントディスパッチスレッド上で実行する必要があるためです。


Q4.3 SwingのGUIを起動する正しいやり方は?
http://homepage1.nifty.com/algafield/JavaGUIFaq19j.html#four3

The Java Tutorials — Creating a GUI With JFC/Swing > Concurrency in Swing > Initial Threads > Initial Threads
http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html

Java Tutorials Code Sample — HelloWorldSwing.java
http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java

p.333
(誤) この式では、DocumentオブジェクトのgetElementByTagName()を呼び出し、
(正) この式では、DocumentオブジェクトのgetElementsByTagName()を呼び出し、

※ getElementByTagName() → getElementsByTagName()。以下の訂正も同様。

p.333
(誤) "body"を引数にしてgetElementByTagName()を呼び出すと
(正) "body"を引数にしてgetElementsByTagName()を呼び出すと

p.333
(誤) HTMLタグでは大文字と小文字を区別しないので、getElementByTagName()に渡す文字列も大文字と小文字
(正) HTMLタグでは大文字と小文字を区別しないので、getElementsByTagName()に渡す文字列も大文字と小文字

p.334
(誤) さらに、HTMLドキュメントの場合は、HTMLDocumentオブジェクトにgetElementByName()メソッドも
(正) さらに、HTMLドキュメントの場合は、HTMLDocumentオブジェクトにgetElementsByName()メソッドも

※ getElementByName() → getElementsByName()

p.417
(誤) DOMレベル1では、すべてのドキュメント要素を操作可能にし、これらの要素で
(正) DOMレベル2では、すべてのドキュメント要素を操作可能にし、これらの要素で

p.419
(誤) ElementsとDocumentがこのインタフェースを実装し、
(正) ElementとDocumentがこのインタフェースを実装し、
※ Elements → Element

p.452
(誤) // Firefoxは e.charCode に印刷文字キーを格納し、IEは e.charCodeに格納する。
(正) // Firefoxは e.charCode に印刷文字キーを格納し、IEは e.keyCodeに格納する。

p.456
(誤) * などの基本型の値を指定する。data には、任煮のJavaScript値が指定できる。
(正) * などの基本型の値を指定する。data には、任意のJavaScript値が指定できる。
※ 任煮 → 任意

p.540
(誤) この例では、例21-6と同じようにXMLドキュメントをHTMLテーブルに変換します。
(正) この例では、例21-7と同じようにXMLドキュメントをHTMLテーブルに変換します。
※ 例21-6 → 例21-7

p.545
(誤) // この関数は引数として名前空間を受け取り、
(正) // この関数は引数として名前空間プレフィックスを受け取り、

p.588
(誤) この例では、makeVMLCanvas()関数とpiChart()
(正) この例では、makeVMLCanvas()関数とpieChart()

p.612
最下行
(誤) Packageオブジェクトから、
(正) Packagesオブジェクトから、



p.354
JavaScriptらしくないコーディング。

(オリジナル)
    // すべての見出しレベル用の節番号を結合して、

// [2.3.1]のような節番号を生成する。
var sectionNumber = "";
for (i = 0; i < level; i++) {
sectionNumber += sectionNumbers[i];
if (i < level - 1)
sectionNumber += ".";
}
(改訂案)
    // すべての見出しレベル用の節番号を結合して、

// [2.3.1]のような節番号を生成する。
var sectionNumber = sectionNumbers.slice(0, level).join(".");
以上

[正誤表] XMLとJavaによるWebアプリケーション開発 第2版 第2版第2刷 正誤表

 
CDの内容が次に示す原著のサイトからダウンロードできます。

XML and Java: Developing Web Applications, 2nd Edition
→ Downloads → CD Contents
http://www.informit.com/store/product.aspx?isbn=0201770040

以下、「XMLとJavaによるWebアプリケーション開発 第2版 第2版第2刷」で見つかった誤記です。
一部、補足めいたものもあります。

p.19
[誤記内容] 次の文に余計な改行が挿入されている。

  Well
  formedな文書を許すことによって

p.69
[誤記内容] 表3.1 において (Level 2) の書体が揃っていない。

p.75
MakeDocumentWithNS.java
final String NAMESPACE_SPEC

= "http://www.w3.org/2000/xmlns/";
→ 当該URLは javax.xml.XMLConstants のstatic定数 XMLNS_ATTRIBUTE_NS_URI で定義されている。

p.108
[誤記内容]
 図4.10 の 文書AのDOMツリー、文書BのDOMツリーの両方の図において、
 Element "second" の子要素が Text "Ichibanme" となっているが、
 正しくは Text "Nibanme" である。

p.114
(誤) Document doc = parser.getDocument());
(正) Document doc = parser.getDocument();

p.116
NamespaceCorrector.java
private static final String XMLNS_NS

= "http://www.w3.org/2000/xmlns/";
→ 当該URLは javax.xml.XMLConstants のstatic定数 XMLNS_ATTRIBUTE_NS_URI で定義されている。

p.119
NCTest.java
static final String XML_NS =

"http://www.w3.org/XML/1998/namespace";
→ 当該URLは javax.xml.XMLConstants のstatic定数 XML_NS_URI で定義されている。

static final String XMLNS_NS = "http://www.w3.org/2000/xmlns/";

→ 当該URLは javax.xml.XMLConstants のstatic定数 XMLNS_ATTRIBUTE_NS_URI で定義されている。

p.153
DOMConstructor.java
public static final String XMLNS_NSURI

= "http://www.w3.org/2000/xmlns/";
→ 当該URLは javax.xml.XMLConstants のstatic定数 XMLNS_ATTRIBUTE_NS_URI で定義されている。

p.211
表7.1 XPathの例
(誤) @type//email  文書ノードのtype属性を選択する。文書に含まれるすべてのemail要素を選択する。
(正) @type   文書ノードのtype属性を選択する。
   //email  文書に含まれるすべてのemail要素を選択する。

p.213
[誤記内容] 「表7.2 XPathの代表的な関数」 concat の説明に余計な改行が挿入されている。

p.229
「表7.4 スタイルシートの評価手順」の手順番号2の出力内容

(誤) <html><head>
   <title>XSLT
   sample 1

(正) <html><head>
   <title>XSLT
   Sample

 ※ sample 1 → Sample

p.239
(誤) 右側のコンポーネントのコンテンとハンドラ
(正) 右側のコンポーネントのコンテントハンドラ

 ※ コンテンと → コンテント

p.244
(誤) TransformerHandlerをXMLReaderに登録する。(2)
(正) TransformerHandlerをXMLReaderに登録する。(46行目)(2)

p.246
(誤) そのため、図7.5に示すように、JAXPのクラス(SAXParserFactory、SAXparser、
(正) そのため、図7.5に示すように、JAXPのクラス(SAXParserFactory、SAXParser、

 ※ SAXparser の p を小文字から大文字へ訂正。

p.255
下から3行目
(誤) 文脈館
(正) 文脈間

p.256
下から3行目
(誤) </title>...</boo>の間の変換である。
(正) </title>...</book>の間の変換である。

p.349
(誤) doPost()メソッドは、HttpServletRequest、HttpServletResponse、Documentの3つの
(正) doProcess()メソッドは、HttpServletRequest、HttpServletResponse、Documentの3つの

(誤) doProceess()メソッドの戻り値もまたDocumentであり、
(正) doProcess()メソッドの戻り値もまたDocumentであり、

p.360
パターン3では、状態はHttpSessionオブジェクトで保持する。この場合、同じセッションの間、同時に2つ
以上のHTTP要求が到着することはないので、
→ サーブレットの仕様では、同一のセッションであっても並行アクセスが発生するものとされてる。

p.360
結論として、要求のレベルに応じて、パターン1(HttpServletRequest)、パターン3(HttpSession)、
パターン5(データベース)を組み合わせることが簡単で安全な方法である。

→ パターン3については、自分でスレッドセーフする必要がある。

p.422
(誤) pathValueTbleで参照されるハッシュ表に格納する。
(正) pathValueTblで参照されるハッシュ表に格納する。

p.430
(誤) mekeIdxTbl()メソッドが実行される(109行目)。
(正) makeIdxTbl()メソッドが実行される(109行目)。
※ meke → make

p.436
(誤) /purchaseOrder[1]/items[1]/item[1]/purchaseOrder[1]/items[1]/item[2]の両方にマッチすべきである。
(正) /purchaseOrder[1]/items[1]/item[1]と/purchaseOrder[1]/items[1]/item[2]の両方にマッチすべきである。

p.437
[誤記内容]
リスト11.11 XMLDBServlet.java には、CDの内容と異なる誤ったソースコードが掲載されている。
その為、掲載されたコードと本文の説明がかみ合わない。
たとえば、本文では、XMLDBServlet は、GenericDOMServlet を継承しているものとして説明しており、
これは、CDの内容に沿っているが、下記のとおり本書に掲載されたコードはそうではない。

 掲載されたコード

  public class XMLDBServlet extends HttpServlet {

 CD

  public class XMLDBServlet extends GenericDOMServlet {


p.437
(誤) リスト11.11ではこのメソッドの中で、XMLTableArchiverのコンストラクタを呼び出し、
(正) リスト11.11ではこのメソッドの中で、XMLTableRetrieverのコンストラクタを呼び出し、

 ※ XMLTableArchiver → XMLTableRetriever

p.479
(誤) メソッドsetup()を呼び出して
(正) setup()メソッドを呼び出して
※ほかの箇所では、「setup()メソッド」と記している。

p.481
(誤) // create connectio and session
(正) // create connection and session

p.482
(誤) // create DOM for SOAM message and invoke the next
(正) // create DOM for SOAP message and invoke the next

 ※ SOAM → SOAP

p.501
(誤) String encodingStyleURI = args.length == 3
(正) String encodingStyleURI = args.length == 7

p.506
※ 以下、AttachmentPart であるべき箇所が Attachment art となっている。

(誤)
    Attachment art ap =

msg.createAttachment art(new DataHandler(url));
ap.setContentType("text/html");
// Add the attachment part to the message.
msg.addAttachment art(ap);


(正)
    AttachmentPart ap =

msg.createAttachmentPart(new DataHandler(url));
ap.setContentType("text/html");
// Add the attachment part to the message.
msg.addAttachmentPart(ap);


p.531
static public String XSD_NAMESPACE=

"http://www.w3.org/1999/XMLSchema";
→ URL "http://www.w3.org/2001/XMLSchema" が javax.xml.XMLConstants の
 Static定数 W3C_XML_SCHEMA_NS_URI に定義されている。



p.372-374
リクエストを受けたサーブレットから、転送先のJSPへデータを渡す場合、
通常、request オブジェクトを利用するのが、本書では、
Session オブジェクトを使用している。これでは、スコープが無駄に広くなり、
スレッドセーフに配慮しなければならないなどの問題がある。
以下は、それに関する訂正。

リスト10.16 BookStoreServlet2.java
  public final class BookStoreServlet2 extends GenericDOMServlet2

  ...
  {
    public void doProcess2(HttpServletRequest req,
    ...

      if ("addItem".equals(localName)) {
        ...
  p.373
  (旧)    session.setAttribute("result", array);
  (新)    req.setAttribute("result", array);
        ...
      }

      if ("order".equals(localName)) {
        ...
  p.374
  (旧)    session.setAttribute("result", array);
  (新)    req.setAttribute("result", array);
      }
p.374
(旧) 2.以下のように、HttpSessionオブジェクトにresultという名前で格納する。
    session.setAttribute("result", array);

(新) 2.以下のように、HttpServletRequestオブジェクトにresultという名前で格納する。
    req.setAttribute("result", array);

p.375
リスト10.18 addItemResponse.jsp
  <%@ page import="chap10.bookstore.ItemBean, chap10.EscapeString"

       contentType="application/xml; charset=utf-8"%>
  <jsp:useBean id="result"
         class="chap10.bookstore.BeansArrayBean"
(旧)       scope="session"/>
(新)       scope="request"/>
p.376
(旧)
このBeanの有効範囲はHTTPセッション(session)であることに注意してほしい。
これは、サーブレットがBeanを運ぶのにHttpSessionオブジェクトを使っていたことに対応している。

(新)
このBeanの有効範囲はHTTP要求(request)であることに注意してほしい。
これは、サーブレットがBeanを運ぶのにHttpServletRequestオブジェクトを使っていたことに対応している。

p.376
  <jsp:useBean id="result"

         class="chap10.bookstore.BeansArrayBean"
(旧)       scope="session"/>
(新)       scope="request"/>

以上。
次のページ