よろずやネット

最近はLibreofficeにハマっています。

【Gmail】 Google/GSuiteの安全性の低いアプリ("less secure app" LSA)の接続許可が廃止されたとしても「安全性の低いアプリ」を使い続けるのに有効であろう方法

Googleは、ユーザー名とパスワードのみでGoogleアカウントにアクセスできる安全性の低いアプリのアクセスを2020年6月から制限、最終的には2021年2月14日に廃止します。
https://japanese.engadget.com/2019/12/17/google-g-suite/


これに伴い私たちクライアント側では対応が必要になります。
特にGmailに関し(上記アナウンスにPOP3アクセスの記述がありませんが)、POP3アクセスが継続するのであればLSAが廃止されたとしてもLSA該当アプリの継続使用が可能だと思われます。


【ケーススタディ】
以下の2つのケースにて、Googleに"less secure app" (LSA)と認識されたアプリでもLSAオフ状態での使用が可能になります。
(Googleアカウント設定でLSAオンにしなくてもOK)

1. WindowsでLSAのGmail連携中間メールサーバー(POP3/SMTP)が稼動している
2. WindowsでThunderbird等のメールクライアントがLSAとして認識されている

 

【方法】
1. Googleアカウント管理画面に入る。
2. 左側のセキュリティを押す
3. 安全性の低いアプリへのアクセス "less secure app" (LSA) が許可されていない事を確認する。
4. 「2段階認証プロセス」をオンにする。
5. 「アプリ パスワード」の画面に入る
6. 「アプリ パスワードを生成するアプリと端末を選択する」にて
  メール/Windowsパソコンを選択し「生成」を押す。
7. 生成された16文字のアプリパスワードを
  中間サーバーやメールクライアントのログイン情報に使用する。
※2段階認証プロセスの有効化に携帯電話は必須です。

【重要】携帯端末にてLSAメールクライアントを使用している事例は多いと思われます。早めの確認・対応が必要です。

CalcでMariaDB MySQLに接続、SQLクエリーを実行して結果(ResultSet)を取得

CalcでMariaDB MySQLに接続、SQLクエリーを実行して結果を取得【準備編】

https://yorozuyanet.hatenablog.com/entry/2019/08/11/020512

の続きです。

 

---コードサンプル ここから----

 Option Explicit

' Declaration Var --
Public DBConnString As String
Public DBConnStringIsSet As Boolean
Public jdbcDriverClass As String
' Declaration Var --

Sub Macro1

    ' JDBCドライバクラスのjarファイルのダウンロード
    ' JavaDriverClass: "org.mariadb.jdbc.Driver"
    ' https://mariadb.com/kb/en/library/server-client-software/client-libraries/connectors    /mariadb-connector-j/about-mariadb-connector-j/
    ' https://downloads.mariadb.org/connector-java/

    ' JavaDriverClass: "com.mysql.jdbc.Driver"
    ' http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/Connector-J/


    jdbcDriverClass = "com.mysql.jdbc.Driver"
    ' jdbcDriverClass = "org.mariadb.jdbc.Driver"
    SetDBConnectionString("127.0.0.1", "your_database_name")

    Dim DatabaseContext as Object
    Dim Connection as Object
    Dim Statement as Object
    Dim ResultSet as Object
    Dim ConnString as String
    Dim Props(2) as new com.sun.star.beans.PropertyValue

    Dim MyQuery As String
    MyQuery="Select Now();"

    'データベースに接続
    DatabaseContext=createUnoService("com.sun.star.sdbc.DriverManager")
    ConnString = DBConnString

    Props(0).Name = "user"
    Props(0).value = "your_username"
    Props(1).Name = "password"
    Props(1).value = "your_password"
    Props(2).name = "JavaDriverClass"
    Props(2).value = jdbcDriverClass

    Connection = DatabaseContext.getConnectionWithInfo(ConnString, Props())

    'SQLの実行
    Statement = Connection.createStatement()
    ResultSet = Statement.executeQuery(MyQuery)


    Dim rCount As Integer ' ResultSetの行数
    rCount = 0
    While ResultSet.next
        rCount = rCount + 1
    Wend
    ' Msgbox(rCount)

    ' ResultSetsのナビゲーション、下記にURLに解説あり
    ResultSet.beforeFirst
    ResultSet.next

    Dim txt As String
    txt = ResultSet.getString(1)
    msgbox(ResultSet.getString(1)) ' 下記に注意書きあり

    ' getString()のパラメーターは列番号でしか指定できない。 列番号は左端の1から始まる(0ゼロではない)
    ' パラメーターを列の名前で指定するとエラーが発生する。
    ' Dim a as String
    ' a= "name"
    ' msgbox(ResultSet.getString(a)) 'Error発生

    ' 種類別データの取得(getメソッド)の解説
    ' https://wiki.openoffice.org/wiki/JA/Documentation/BASIC_Guide/Database_Access


    'データベース接続を閉じる
    Statement.Close()
    Connection.Close()
    Connection.Dispose()

End Sub

 


Sub SetDBConnectionString(DBServerName As String, DBName As String)

    ' URL基本形
    ' URL = "jdbc:mysql://" & DBServerName & ":3306/" & DBName ' & "?useUnicode=true&characterEncoding=UTF-8;"

    If jdbcDriverClass like "*mysql*" Then
        ' サーバー側でTimezoneが設定されていないとエラーが発生する
        ' 文末の;は不要。 ;があるとエラー発生。
        DBConnString = "jdbc:mysql://" & DBServerName & ":3306/" & DBName & _
        "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"
    ElseIf jdbcDriverClass like "*mariadb*" Then
        DBConnString = "jdbc:mysql://" & DBServerName & ":3306/" & DBName & _
        "?useUnicode=true&characterEncoding=UTF-8;"
    End If

    DBConnStringIsSet=True

End Sub

---コードサンプル ここまで----

 

 

CalcでMariaDB MySQLに接続、SQLクエリーを実行して結果を取得【準備編】

Libreoffice Openoffice の Calc は、Macro (BASIC) でデータベースに接続しSQLを送信して結果をレコードセットとして取得する事ができます。クライアント&サーバーシステムのクライアント側をLibreofficeで構築する事が可能です。

 

前提条件:

パソコンにJRE(Java Runtime Environment)がインストールされていて、

LibreofficeがJREを使用するように設定されている必要があります。

f:id:yorozuyanet:20190811013322p:plain

Libreoffice, Tools > Option > Advanced -- JRE

 

 

準備1:

JDBCドライバクラスのjarファイルのダウンロード

おすすめは、MariadbのJDBCドライバです。(現時点ではバージョン2.4.3が最新)

https://downloads.mariadb.org/connector-java/

JREとJDBCドライバのバージョン対応表やその他事項の解説 ↓

https://mariadb.com/kb/en/library/server-client-software/client-libraries/connectors/mariadb-connector-j/about-mariadb-connector-j/

 

MySQLのJDBCドライバ(現時点の最新版はmysql-connector-java-gpl-8.0.17.msi )↓

http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/Connector-J/

 

 

準備2:

上記でダウンロードしたJDBCドライバを、例えばC:ドライブ直下にC:\JDBCというフォルダーを作成し、そこに移動させる。

 

 

準備3:

Libreofficeのメニューにて、ツール>オプション>詳細>クラスパス>アーカイブを追加

で上記JDBCドライバを追加する。

f:id:yorozuyanet:20190811020317p:plain

LibreOffice Add ClassPath

以上で準備は完了です。

Libreoffice Openoffice Macro, Calcファイルをエクセルxlsx形式で保存する

Libreoffice OpenofficeマクロでCalcファイルをエクセルxlsx形式で保存する方法です。下記のサイトにたどり着くまで1週間かかりました。現時点でグーグルで検索ヒットする日本語情報はありません。

https://bugs.documentfoundation.org/show_bug.cgi?id=99092

 

 

ポイントは

FilterNameを

Calc MS Excel 2007 XML

と設定するところです。

 

Option Explicit

Dim oDoc As Object
Dim oSheets As Object
Dim oSheet As Object
Dim oSheetName As String

 

oDoc = ThisComponent

oSheetName = "Sheet1"
oSheets = oDoc .getSheets()
oSheet = oSheets.getByName(oSheetName)

'------------------------

Dim DesktopPath As String
Dim wsh As Variant
Dim folderName As String


wsh = CreateObject("WScript.Shell")
folderName = "Desktop"
DesktopPath= wsh.SpecialFolders.Item(folderName)

'------------------------

Dim FileName As String
FileName = "test"

Dim path As String
path = ConvertToUrl(DesktopPath & "\" & FileName & ".xlsx" )

 

Dim mFileType(0) as new com.sun.star.beans.PropertyValue
mFileType(0).Name = "FilterName"
mFileType(0).Value="Calc MS Excel 2007 XML"
oDoc.StoreAsURL( path, mFileType())

oDoc.store()
oDoc.close(True)

Dell Vostro 220にWindows10をインストールできない場合の解決方法 (エラーコードが0x80070057のの場合)

およそ10年前の古いパソコンのDell Vostro 220にWindows10をインストールする際の自己解決トラブルシューティングです↓

ハードディスクのI/OエラーでWindowsをインストールできない時(エラーコードは0x80070057)、BIOSのSATAモードをRAIDに設定すると解決します。ハードディスク1個でもRAIDです。
このエラーはBIOSバージョン1.3.0特有の現象と思われます。

ここに至るまで二ヶ月間奮闘しました。
Dell Vostro 220でもWindow10はすこぶる快適に動きます。
これで事務所内の数台のVostro 220が現役復帰します。

やった事
1.インストールメディアに付属しているコマンドプロンプトのdiskpartでハードディスク初期化←効果なし
2.新品のハードディスクに交換←効果なし
3.マザーボードを交換←効果なし
4.CPUを交換←効果なし
5.ATX電源ユニットを新品に交換←効果なし
6.メモリーSDRAMを交換←効果なし
7.BIOSリセット←効果なし

反省点
新しいパソコン買ったほうが安かった。

得られたもの
何事も為せば成る。

windows10に.net framework 1.1をインストールする方法

久々に驚きを感じました。

公式には.net framework 1.1がサポートされていないwindows10ですが、実は1.1のインストールが可能なのです。

わざわざvmwareやhyper-vでxpをインストールしなくても.net framework 1.1にしか対応していないアプリケーションがwindows10で使用可能になります。

方法は次の8ステップ

1. Cドライブ直下にC:\DotNetというディレクトリを作成する

2. Microsoft .NET Framework Version 1.1 Redistributable Package をダウンロードする
https://www.microsoft.com/en-us/download/details.aspx?id=26
ダウンロードしたファイルがdotnetfx.exeというファイルである事を確認する

3. Microsoft .NET Framework 1.1 Service Pack 1 をダウンロードする
https://www.microsoft.com/en-us/download/details.aspx?id=33
ダウンロードしたファイルのファイル名をdotnetfxsp1.exeに変更する

4. 上記2つのファイルをC:\DotNetに移動する

5. コマンドプロンプトを管理者権限で開く

6. cd コマンドでカレントディレクトリをC:\DotNetに変更する
cd C:\DotNet

7. 次のコマンドを実行して1.1をインストールする
dotnetfx.exe /c:"msiexec.exe /a netfx.msi TARGETDIR=C:\DotNet"

次のコマンドを実行する
dotnetfxsp1.exe /Xp:C:\DotNet\netfxsp.msp
(実行結果は何も表示されない)
コマンドプロンプトが待ち受けになるまで待つ

次のコマンドを実行する
msiexec.exe /a c:\DotNet\netfx.msi /p c:\DotNet\netfxsp.msp

8. C:\DotNetにある netfx.msi をクリックして実行させる

以上で.net framework 1.1のインストールは完了です。

実証環境:
windows10 64ビット バージョン1803
コメントお待ちしております。

今日はベトナム、ホーチミン日本人補習校の入学式

今日はベトナム、ホーチミン日本人補習校の入学式および卒業式。うちの子の話では、新小学一年生は約25人で中学部の卒業生は1人とのこと。高学年は少なく低学年が極端に多い末広がりな分布。ちなみに現在の小学部5年生は男子3人、女子1人の計4人。

ホーチミン日本人補習校には校歌もあります。
以下、校歌です。




ホーチミン日本人補習校 校歌
作詞・作曲 宮部正博(平成十七年度 運営委員会)

降りそそぐ太陽 そよぐメコンの風
夢と希望と 学ぶ喜び
友と語り はぐくむ友情を
みなへつないで 心にきずな
サイゴンデルタに 輝け 我が学び舎

強い陽射しに 薫るメコンの風
力と 身体を きたえる喜び
友と学び 築く友情を
みなへつないで 胸に思い出
サイゴンデルタに 永久の 我が学び舎

2011年停電生データ

2011年の停電を記録します。
(1月~2月は引越し等で多忙だったため記録していません、3月から記録開始します。)

観測地:
Quan Thu Duc, TP. Ho Chi Minh
ホーチミン市トゥードック区

2010年の停電記録は、
http://blogs.yahoo.co.jp/yorozuyanet/30982871.html


2011年03月08日, 12:05-17:15, 約5時間10分停電
2011年03月15日, 12:05-16:45, 約4時間40分停電


2011年04月05日, 08:05-12:50, 約4時間45分停電


2011年05月 停電なし


2011年06月21日, 08:05-12:35, 約4時間30分停電


2011年07月 停電なし


2011年08月 停電なし


2011年09月20日, 08:15-12:15, 約4時間停電


2011年10月10日, 01:30-02:00, 約30分停電間停電 (深夜)
2011年10月31日, 20:35-21:50, 約1時間15分停電


2011年11月14日, 10:35-12:50, 約2時間15分停電