ITservice雄飛 プロモーションビデオ

2020年5月21日木曜日

ExcelからSQLserver(ローカル)に接続する。

お久しぶりです、
ITservice雄飛です。

今回は、技術ネタを。

実家の会社の基幹となる小規模なシステムがあるのですが。

WinXP+SQLserver2000+VB6業務用アプリ、という、

すごーく、すごーーーく、古すぎる(運用20年)のシステムでして。

これがそろそろ、本当に壊れそうになってきた。

サポートはもう切れて(もう売ってもないし、サポートもしてくれない)おり。

仕方なく、Excelにて、臨時のシステムを作る事になりました。

Excelって、こういう時、本当に力になるよね…。

先ずは、データの吸出しから。

データベース(SQL Server)に接続する(ADO)
https://excelwork.info/excel/databasesqlserver/

こちらのサイトを参考に致しました。

しかし、繋がらない。

「SQLserverが存在しないか、アクセスが拒否されました」

と出る。

そこで、さらにググってみる。

すると、「接続文字列」、「名前付きパイプ」というキーワードに、
辿り着きました。

SQL Serverが接続に使用しているプロトコルを確認する方法
https://became-free.com/sql-dm_exec_connections/

ローカルで接続する場合、「名前付きパイプ」で接続する事があるらしい。
その場合、接続文字列も変わってくる。

'VBA code
con = np:sql\hoge

例えるなら、こんな感じで接続が通りました。

しかし、今度はテーブルが見つからないという。


再びググる、ググる。

すると、こんな情報が見つかりました。

【SQL Server】オブジェクト名”○○”が無効です
http://lifesiz.com/adsense/?p=30


SELECT * FROM hoge;

ではなく、

SELECT * FROM hoge_DB.dbo.hoge;

と、データベース名をきちんと明記する。

すると今度は、テーブルにアクセス出来ませんと出る。


また、ググる、ググる。

SQL Serverのオブジェクトに権限を設定する
https://www.atmarkit.co.jp/ait/articles/0111/27/news001.html


これで、必要な権限を付与し、実行すると。
無事、データにアクセスできました。

それでは。

2020年5月7日木曜日

プログラミング実践的入門!

おはようございます、ITservice雄飛です。

朝のうちに、昨日撮った動画をブログに反映していきます。

とうとう、(すごく自粛ムードに包まれた)GW、明けましたね。

テーマは、「プログラム実践的入門!」です。



Visual Studio 2019を中心に、説明しています。

途中、まだDelphiエンジニアの為、
アルゴリズムをソースコードに落とす例をDelphi言語で実践してます。

どの様に開発して、どの様にデバッグして、
どの様にエラーを克服して、どの様に学習していくのか?

その手順というか、手法を語っています。

また、IDE(統合開発環境)毎の操作の違いも、語っております。

環境ごとのキー割り当ての違いや呼び方の違いにも、言及しております。


それでは。

プログラミングに必要なもの2

おはようございます、ITservice雄飛です。

朝っぱらから記事書いております。
とうとう、GW明けましたね。
コロナ禍で自粛ムード全開でしたが。

さて、動画に入りたいと思います。

プログラミングに必要なもの2
というタイトルです。

プログラマは開発言語を使います。
その開発言語の選び方ですね、早い話が。

動画自体は、二日前に撮ってありました。



先ず、個人的にプログラマに必要だと思うものを書きました。

何を(どの様な環境)で何をしたいのか?
・Webアプリを作りたい?
・スマートフォンアプリを作りたい?
・パソコンで動くソフトウェアを作りたい?

それ(プラットフォーム)が決まったら。
何を何処から手を付けたいのか?
(どんなツールを覚える必要があるのか?)

JAVA?(フロントエンド~サーバサイド&マルチプラットフォーム)
PHP/Perl?(サーバサイド)
Phyton?((ほぼ)サーバサイド)
JavaScript&HTML5&Css3?(フロントエンド&動的HTML(Web))
C++?(デスクトップアプリ&スマートフォンアプリ)
C#.net/VB.net?(デスクトップアプリ(or Xamarin:スマートフォンアプリ))
Delphi(pascal)?(デスクトップアプリ(or FireMonkey:スマートフォンアプリ))
他物凄く沢山多数?(ShellScript,Bat,他凄い沢山…)

何がしたいか決めていって落としていくことだと思います。

また、それを勉強するうえで、自分の作りたいもの、自分が面白いと思ったもの、
そういう事を見つける事かと思います。

その中で、自分が長く付き合えそうな言語とプラットフォームを見つけることが、
プログラミングを覚えるコツだと思います。


2020年5月6日水曜日

プログラミングって何?3

ITservice雄飛です。

疲れ果て、UPして数日後に記事にしてますw。


先ず、お題の通り。
プログラミングって何?
何するの?どんな世界なの?

そんな事を中心に話しています。

プログラミングに必要な知識として、
・文章に対する常識的な読解力、記述力
・英語力(プログラミング言語はそもそも英語形式)
・論理的思考能力(物事を順序正しく整理整頓して語れるか)

この三つは必須だと思っています(私個人は)。

次にあった方が良いものとして、

・疑い力(何故それがそうなるのか、という観察力にも似た力)
  今動いているものでも、別のコードを弄ると、
  そこが動かなくなることが、普通にあります。
  そんな時、常に物事を疑い、疑問を持つことは重要になってきます。
  (但し、疑心暗鬼や猜疑心とは全然違う)

・アルゴリズム(流れ図やフローチャート等の構築力)
  動作手順書とでも言うべき、一連の動きを、
  手順にまとめて図解で示す力です。
  例えば、

    始め!
    ここから ずっと 繰り返し
      もし スペースキー 押された?
      ここから
        ウインドウ を 生成
        ウインドウ に 図を 表示
      もし ここまで
      でなければ 
      ここから
        もし ウインドウ がある?
        ここから
          ウインドウを 消去
        もし ここまで
      もし ここまで
      もし エスケープキー 押した?
      ここから
        繰り返し 終了
      もし ここまで
    繰り返し ここまで 

  「始め!」でアプリが立ち上がり、ループ処理が行われ、
  スペースキーが押された時に、図を表示するウインドウを出す、
  架空のプログラムのアルゴリズムを書いてみました。

  端的に示すと、「この様な思考が出来るか?」と言う事です。
  書籍やWebからコピーして組むだけなら、問題ないでしょうが、
  一から組む場合は、必須でしょう。

・精神的な耐性(色々な意味で)
  PCに起こる、障害やそれに伴う苦労に耐えられるか?
  メモリが足らない、CPUが遅い、処理に時間が掛かる、
  処理が間違っていて動かない、動かない原因が解らない。

  そんな時、イライラキーキー、する事なく、落ち着いて考えられるか?
  そんな能力になります。
  ある意味、デバッグやテスト、開発でも、必須に近い能力でしょう。

・たゆまぬ努力心
  ある意味必須です。
  常に努力し続けられるか?
  この一点につきます。
  コンピュータの世界は日進月歩どころか、分針秒歩の世界だと、
  私は個人的に思っています。
  その様な中に置いて、努力をしないのは、
  プログラマとして死に等しいと思っています。
  今の時代、数百近い開発言語があり、それが年毎に優劣が変わり、
  場合によっては、使っている言語が廃れてしまう事もある。
  その場合、乗り換えも考えないといけない。
  乗り換えなくても、改あh津言語のバージョンアップに対応しないといけない。

  その意味では、正に努力の放棄は致命的でもあります。

・忍耐力、我慢力
  ここは、図と幾分ズレてしまいましたが。
  要は、原因不明や、重い処理、思い通りの処理が走らない時、
  忍耐強く調べ、デバックや開発を続けられるか>に尽きます。
  本気でやる場合なら、これはもはや必須でしょう。

・文系理系を問わず、なんかなロジックでも、
 諦めずに構築/読解出来るか?
  これは、難しい処理を読めるか、という単純な意味では無く、
  ・難しい事を簡潔に判り易く書けるか?
  ・難しい事を難しく書いて、難読化させていないか?
  ・その様な難読なコードでも、簡潔化して脳内で図示出来るか?
  に尽きます。

  仕事で組む上では、必須かもしれない、ある意味。


この様な感じでしょうか?

いきなり、全てを得るのは不可能ですし、
それをいきなりしてしまったら、脳が壊れてしまいかねない(心理的に)。

と、思います。
少しずつ、じっくり得ていけばいい話だと思います。

それでは。

2020年5月4日月曜日

プログラミングって何?2

こんにちは、ITservice雄飛です。

プログラミングって何?
第二回目をやってみました。

今回はちょっとだらだらになってしまって申し訳ない…。


内容は、プログラマってこんな事してるよ、
失敗から教訓得て何か作ってるよ、
前年作ったベストは、今年から見て黒歴史…、といった、
プログラマあるあるネタを中心に話してみました。

また、規模を小さくすると良いもの出来たりするけど、
規模大きくすると、良いもの作るの、途端に難しくなったり。

開発するのも、常に失敗の連続で、
そこから経験得て、良いもの作るノウハウためたりします。

今回はだらだらなってしまったので、
次回は、きちんと内容揃えて、やってみたいと思います。

要は、場数踏んで、経験積まないと、何も作れないよ、っていう事。

で、そのためには、コツコツ小さな経験沢山積んで、
頑張るしかないよ、ってこと。

今回は、そんな感じでしょうか?

説明もだらだらになってしまいましたが。


それでは。

C# WPF(XAML) 超入門!

こんばんは、ITservice雄飛です。

今回は、C#での実演動画を作ってみました。
使用するIDEは、VisualStudio2019、
プロジェクトは、.Net FrameWork(Core)を使いました。

初めてWPF触る方や、私の様に他言語から移った場合、
少なからず悩むと思います。

その、最初の初歩の初歩(Hello Word)をGUIでやってみました。

以下が動画です。

先ず、VisualStudio2019を起動し、WPFプロジェクトを立ち上げます。

アセットから、ボタンを配置します。
で、ボタンをダブルクリックします。

どうでしょうか?
イベントハンドラの生成が上手く行きませんね。

WPFでは、フォーム側とソース側が完全に分かれています。

その為、ソース側とデザイン画面下のコードウインドウで、
XAMLを編集して様々な処理の手続きを行います。

基本は、アセットからフォームに配置して、それを下部のXAMLの編集画面で操作し、様々なイベント等の記述をします。

<Window x:Class="WpfApp7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp7"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Button Name="Btn1" Click="Btn1_Click"  Content="Button" HorizontalAlignment="Left" Margin="96,113,0,0" VerticalAlignment="Top" Height="90" Width="202" RenderTransformOrigin="0.5,0.5">
            <Button.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="-9.372"/>
                    <TranslateTransform/>
                </TransformGroup>
            </Button.RenderTransform>
        </Button>
        <Button Name="Btn2" Click="Btn2_Click"  Content="Button" Margin="484,122,175,213" RenderTransformOrigin="0.5,0.5">
            <Button.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform Angle="-3.099"/>
                    <TranslateTransform/>
                </TransformGroup>
            </Button.RenderTransform>
        </Button>

    </Grid>
</Window>

このような感じ。
下線部を追加します。
Click="Btn1、Click="Btn2を、コード補完でイベントハンドラを作ります。
デザイナ側はこんな感じです。

次に、コードビハインド(ソースコードエディタ画面)を開きます。


sing System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApp7
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        string Hello_s = "Hello,World!";
        
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Btn1_Click(object sender, RoutedEventArgs e)
        {
           //メッセージボックス出します
            System.Windows.MessageBox.Show(Hello_s);
            //メッセージボックスの値を、Btn1のContentに代入します
            Btn1.Content = "OK," + Hello_s;
        }

        private void Btn2_Click(object sender, RoutedEventArgs e)
        {
            //Btn1のContentをBtn2のContentに代入します。
            Btn2.Content = Btn1.Content;
        }
    }
}

コードビハインド側では、この様に記述します。
記述したのは、下線部ですね。

今回は、こんな感じでしょうか?

判ってしまえば簡単で、ソースコードとデザインが、完全に分離されています。
なので、デザインのコード画面で、イベントハンドラとコードビハインドで、
互いにコードレベルで連携しながらソースと画面を連結させていきます。

個人的には、判ってしまえば簡単でいいなと思いました。

次回は、FunctionやProcedureを使ってみたいと思います。

それでは。

2020年5月3日日曜日

プログラミングって何?

ITservice雄飛です。

プログラマから見た視点の「プログラミングって何?」って動画作りました。




技術的な話は皆無で、抽象的な形を意識して纏めました。

プログラミングって何?な話なるんですが。

プログラミングとは、Programming(Program-ing:プログラム(を)している)という、ingがつく言葉ですね。

元はプログラム。

プログラムって何っていうと、運動会やお店のお食事コースのプログラム、
あれと同じですね。

ただそれが、ifをネストしたり、変数噛ましたり、ForやIfを重ねてみたりと、色々な事を実際にするだけで、コンピュータへの指示書、若しくは命令書に変わりはありません。

で、更に書くと。

そのプログラムした結果が、アプリでありソフトです。

じゃぁ、既存のもので間に合えば、それに越したことは無いでしょう。
それでは間に合わないとき、ちょっと違う、合わない、その時に作ればいい。

或いは、そのアプリとアプリの橋渡し的なものを作る、等。

例えばスクリプトとか。

等々。

プログラムもプログラミングも、基本的には手段でしかない。

更に言うと、技術も手段。

大事なのは結果。

多少の解釈の仕方により答えは違ってくるでしょうが。

が、目的と手段が入れ替わってはいけない。

その意味では、プログラミングは手段でしかない。

先ずは、その前提を知ったうえで、技術習得を目指すのもありかと。

以上、第二回動画でした。

2020年5月2日土曜日

プログラミングを始めたい人向けの配信動画作りました

動画配信はじめました。

今回第一作は、
プログラミングを始めたい人向けの、
初歩の初歩の初歩、
を想定してざっくばらんに語ってます。
以下動画です。



今回の動画配信の目的は、
プログラミング以前の基礎知識、といったところでしょうか?

動画で使っているのは、スクラッチというソフトウェアです。
こちらで使えます。

ダウンロード版はこちらになります。



後々、スクラッチや他言語での実演も予定しています。

第一回目は、心構えというか、予備知識程度の前提を中心にしました。

動画作成は半日位でしょうか?
動画の変換に予想外に時間食いました。

コンスタントに情報発信していければと思います。

単調になりましたが、それでは。