マルチタスクになったおかげで、どうにも動作がおかしくなった部分があります。元々作りがよくないのかもしれませんが、didloadで、アプリ起動時に、UIImage に imageNamedでファイル名を指定して読み込ませているんですが、初回起動時は、うまくいきます。

UIImage setimage:xxxx

xxxxはumagenamedで読み込んだ変数

 

これが一度、iPhoneの下の丸いボタン(なんていうんだっけ?)を押して終了ではなくて、iOS4からは、サスペンド?バックグラウンド?処理遷移させます。

 

その後、再びアプリを起動すると、setImageのところでこけます。

imageNamedでの変数が、空になってるっぽいです。じゃ、再度ってやってみたら、だめでした。プログラムが強制終了。

ということで、悩んでましたが、とくに、サスペンドする必要もないアプリを作っているので、iOS4以前と同じくマルチタスクではなくしてしまえばということで調べておりましたところ、

下記の方法でマルチタスクとしないで、ちゃんと終了してくれるようになりました。

 

 

以下Excelですが、指定の桁を取得することができます。

1の位のみ取得、10の位の取得、0.1の値取得
A1 値
B1 指定桁数(1、10、100、、、0.1.0.01、、)

=(MOD(A1,B1*10) - MOD(A1,B1))/B1

MinPixelPointWidth

series["MinPixelPointWidth"] = "20";

Seriesに対して、Pixcelで指定。最低のサイズを指定。グラフ全体のサイズを変更しても最低このサイズ以下にはならない設定。

 

.NET Framework 2.0 SPおよび3.5 SPあたりをあてると、.NET Framework 1.1でなければ動作しないSharePoint2003 がエラーをはきます。

しかし、なぜ、エラーなのか。設定上ASP.NET 1.1選択してあるのにもかかわらず、エラーメッセージによるとASP.NET2.0.。。を使おうとしている。これは、

sharepoint_error.png


 

Microsoftのページによると、エラーのリンクを入力すると以下にジャンプする

http://support.microsoft.com/kb/894903

ここに説明があるとおり、

stsadm -o upgrade -forceupgrade

とコマンドを入力することで、データベースをアップグレードする。

 

ただし、ここで注意が必要なのは、IISの対象のウェブサイトのプロパティで、ASP.NETで1.1が選択されていなければならない。選択されていてもエラーとなる場合は、一端2.0を選択したのちに、1.1に戻す必要がある。

もし、間違えて、2.0でstsadmのコマンド実行してしまった場合は、再度、ASP.NET1.1を選択して、stsadmのコマンドを実行する必要がある。

 

その後IIS再起動で、ページが表示されるようになった。

が、しかし、

サーバそのものを再起動したときに再度同じ問題が発生。errorが表示される。

今度は、ASP.NET1.1をいったんASP.NET2.0に選択し、さらに、1.1に戻すことで、無事に開けた。

 

これは、再起動毎に発生するようで、これでは、たいへん。さらに調べていると

http://support.microsoft.com/default.aspx/kb/928607/ja?p=1

このページを見つけた。

 

どうやら、起動時に勝手に、2.0を起動してしまうようだ。

なので、

 

 

 
 
    
        
            
        
    

こんなXMLを

w3wp.exe(IIS)があるところと同じフォルダ内に、名前「W2wp.exe.config」としておくことで問題なくなるそうだ。

 

ほんとかどうか。やってみる。結果報告はまた次回。

SyntaxHighlighter2.0

| コメント(0)

2.0になって使い方が変わってます。

サイトもGoogle Codeから変わってます。

 

最新版はこちらからダウンロードできます。
http://alexgorbatchev.com/wiki/SyntaxHighlighter

大きな変更点は、

configおよびdefault

の設定が追加されたこと。

textareaもしくはpreで記述可能でしたが、configにてタグの指定を行います。ちなみに、preがデフォルト。

また、表示スタイルはテーマから選びます。

以下、対応コード表です。(http://alexgorbatchev.com/wiki/SyntaxHighlighter:Brushes

Brush nameBrush aliasesFile name
ActionScript3as3, actionscript3shBrushAS3.js
Bash/shellbash, shellshBrushBash.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
GroovygroovyshBrushGroovy.js
JavaScriptjs, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js

マクロメディア、現在のadobeの Dreamweaverでビエイビアでウィンドウオープンを作ると以下の通りになります。

function MM_openBrWindow(theURL,winName,features) { 
    //v2.0
    window.open(theURL,winName,features);}

これだと2回目のオープン時に、同じwinNameだとウィンドウが前面に出てきません。そのため、すでに開いているか確認して、開いていたならば、オープン、そうでなければ、そのwindowをアクティブにすればいいと思って調べていましたが、そんなことしなくてもいいんですね。ごく簡単に解決しました。以下のコード。単純にフォーカスすればいいだけですね。

function MM_openBrWindow(theURL,winName,features) { 
    //v2.0
    var win = window.open(theURL,winName,features);
    win.focus();
}

 

そもそもExcelでhtmlを出力するのに文字コードが指定できるとは思っていなかったわけで。。。

Excel 2007ですが、名前を付けて保存でWebページで保存をするときにはチェックしておくとよいです。

Excel 2007 「名前を付けて保存」画面の左下「ツール」から「Web オプション」を選択します。

excelWebpotion2.png

Microsoft SQL Server 2005からだったか、INSERTED.(フィールド名)というのが使えるようになっています。

IDENTITYの項目名がidとします。 下記のSQLを実行します。

                        INSERT INTO table_name(hogehoge) 
                        OUTPUT INSERTED.id 
                        VALUE ('hogehoge')

INSERT文によって生成されたidが取得できます。

C#(.NET)でMSSQL Serverを使うときは、SELECTと同じように扱って、値idを取得できます。

MSSQLでも2000までは、以下のIDENT_CURRENT@@IDENTITYSCOPE_IDENTITYというものを知らないといけなかったんですが、新しいバージョンだと不要です。


Transact-SQL リファレンス IDENT_CURRENT

  • IDENT_CURRENT は、任意のセッションと有効範囲内の特定のテーブルに対して生成された最後の ID 値を返します。 
  • @@IDENTITY は、すべての有効範囲を対象に、現在のセッション内の任意のテーブルに対して生成された最後の ID 値を返します。
  • SCOPE_IDENTITY は、現在のセッションと現在の有効範囲内の任意のテーブルに対して生成された最後の ID 値を返します。

 

Microsoft SQL Server 2005にて。

自動でインクリメントする項目は、IDENTITYで設定できるが、1テーブルには1つしかありません。

そこで、そのほかに自動でインクリメントする項目がほしかった場合は、どのようにするのか、調べてみました。

 わりと簡単にMAX+1とかでいいじゃん、って思ったりもしましたが、レコードが0件の時は、成立しません。

0件の時は、初期値がほしいわけです。

それを解決するのが「COALESCE」。

取得した値がnullだったら、○を返す、というようなもの。

すばらしいです。これで、IDENTITYなんか怖くない。ちなみに、COALESCEは、MySQLにもあります。そのほかのDBにもあるとおもいます。

INSERT INTO table_name(id)
SELECT COALESCE(MAX(id)+1,1)
FROM table_name

MSSQL Serverで.NET2.0の場合

ちょっとだけ簡単になってます。

command.Parameters.Add(new SqlParameter("@data",data));

これが、

command.Parameters.AddWithValue("@data", data);
 

こう書けます。

addWithValue()

ちょこっと便利。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

アイテム

  • sharepoint_error.png
  • excelWebpotion2.png

ウェブページ

Powered by Movable Type 5.02

にほんブログ村

にほんブログ村 IT技術ブログへ
にほんブログ村