2019年4月19日 星期五

產生MSSQL的SCRIPT時批次變更檔案名稱以便比對程式內容


當要比對資料庫中的Script和版控中的是否一致時,例如:自訂函式時,要搭配WinMerge進行資料夾比對時,需要將SQL產生的檔案名稱變更和版控一致時,就需要批次取代特定檔案名稱字串





將前置的字元【dbo.】取代為空字串,和後置的字元【..UserDefinedFunction】取代為空字串

Dir | Rename-Item -NewName {$_.Name -replace ".dbo",""}
Dir | Rename-Item -NewName {$_.Name -replace ".UserDefinedFunction",""}






變更後結果就一致了




























接著就可以進行檔案比對了











2019年3月29日 星期五

Vistual Studio Code 引用numpy時發生【module compiled against API version 0xc but this version of numpy is 0xb】的錯誤


import numpy 時出現

module compiled against API version 0xc but this version of numpy is 0xb









看來是numpy的版本太舊造成


用系統管理員身份開啟命令提示字元執行

pip install numpy --upgrade
























再F5執行一次已可以正常引用












2019年3月24日 星期日

Python連接Mariadb資料庫(windows環境)


先安裝Python的Mysql連線模組(請用管理員身份開啟命令字元)

pip install MySQL-python

















出現錯誤,必須要安裝Microsoft Vistual C++ 14.0

https://www.microsoft.com/zh-TW/download/details.aspx?id=48159























































2019年1月27日 星期日

從頭開始,一步一步架起低成本網站【第4章~強制使用https網址】

URL Rewrite機制

將所有http路徑導向到https路徑

首先啟用apache2中的rewrite模組

a2enmod rewrite


接著在網站的根目錄下新增一個.htaccess檔案,並增加以下內容

#避免直接存取目錄
Options -Indexes
#rewrite
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]












存檔後檢查讀取權限

chmod 755 .htaccess


最後測試用http輸入網址後是否有正常導向到https

2018年7月8日 星期日

從頭開始,一步一步架起低成本網站【第3章~安裝FTP站台並啟用SSL加密連線供上傳程式檔案】



前面已經安裝了web和db,接下來如果購買VPS主機的話就需要使用FTP去上傳你所撰寫的程式

【安裝VSFTPD】

sudo apt-get install vsftpd

【檢查VSFTPD是否已安裝】

netstat -tul | grep ftp
OR
service vsftpd status


2018年6月24日 星期日

從頭開始,一步一步架起低成本網站【第2章~架設OpenSource資料庫平台Mariadb及UTF8】


MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權授權。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社群採用分支的方式來避開這個風險

安裝Mariadb


sudo apt-get install mariadb-server




2018年6月17日 星期日

從頭開始,一步一步架起低成本網站【第1章~Ubuntu上架設.net平台web主機】


首先不管是要自架主機或是買VPS,總之要先有一台Linux主機


我是預計寫C#建立站台,所以採用Linux + Mono + Apache2 + Mariadb這個幾乎零成本的建置環境,接下來的案例都會以mail.example.com這個主機名稱為例子


2018年6月10日 星期日

從頭開始,一步一步架起低成本網站【第0章】


前言:

預計將自已建置各式主機的步驟作一個完整記錄!


環境:

Server :

Lincode Ubuntu 16.04 amd64


DB Server:

Mariadb 10.2.14

WebSite :

Mono 5.10.1.47


Client:

Windows 10 amd64





2017年10月10日 星期二

mono在.net4.0中checkboxlist狀態無法正常呈現的解決方式

如果有使用checkboxlist在mono中會發現一是裡面的值無法正常儲存,可參考以下解法:


解法1:

在web.config中的<system.web>區塊中加上此行

<pages controlRenderingCompatibilityVersion="3.5" />


註.但有可能影響到其他有用到4.0以上的元件呈現,例如:MenuItem



解法2:

在Page_PreRender中加上以下函式


protected void Page_PreRender(object sender, EventArgs e)
        {
            setCheckBoxStates([你的checkboxlist名稱]);
        }



private void setCheckBoxStates(CheckBoxList cbl)
        {
            if (IsPostBack)
            {
                string cblFormID = cbl.ClientID.Replace("_", "$");
                int i = 0;
                foreach (var item in cbl.Items)
                {
                    string itemSelected = Request.Form[cblFormID + "$" + i];
                    if (itemSelected != null && itemSelected != String.Empty)
                        ((ListItem)item).Selected = true;
                    i++;
                }
            }
        }


這只能保持你的選取狀態是正常的,但選取的值如果用一般寫法仍會無法儲存,所以同理改寫成以下方式


 string calids = "";
                string cblFormID = [你的checkboxlist名稱].ClientID.Replace("_", "$");
                int i = 0;
                foreach (var item in [你的checkboxlist名稱].Items)
                {
                    string itemSelected = Request.Form[cblFormID + "$" + i];
                    if (itemSelected != null && itemSelected != String.Empty)
                        if (calids == "")
                        {
                            calids = itemSelected;
                        }
                        else
                        {
                            calids += "," + itemSelected;
                        }
                    i++;
                }


註.checkboxlist的命名規則不可包含有「_」底線,不然會一樣被過濾成$導致無法正常運作


2017年9月2日 星期六

在ubuntu分享印表機給windows使用


先在ubuntu 中安裝印表機驅動程式


接著進行command模式安裝

sudo apt-get install samba

sudo apt-get install cups


然後編輯smb.conf

sudo vim /etc/samba/smb.conf

在【print】區塊增加

browseable = yes

guest ok =yes

















重啟samba 

sudo service smbd restart


檢查是否可以登入CUPS網站 http://localhost:631



再來在windows中新增印表機,例如我的主機ip是192.168.1.2就是

http://192.168.1.2:631/printers/印表機名稱







接著要安裝印表機的驅動程式.inf檔(請上官網下載windows版的驅動程式,然後解壓縮或直接安裝)
























最後再印一下測試頁,如果印表機有動就沒問題了!







2017年3月16日 星期四

升級Ubuntu核心


執行更新套件時,出現安裝有問題,研究半天好像是核心有問題

sudo apt-get update

sudo apt-get dist-upgrade











2017年2月18日 星期六

隨機產生六碼亂數驗証碼


mssql

Select abs(checksum(NewId()) % 999999)

asp.net

 Dim confirm_password As System.String = Math.Round((CDbl(CDbl((999999 * Rnd())))), 0).ToString

2017年2月9日 星期四

在Ubuntu 建置 mod-mono-server

【建置Apache2】


1.安裝apache2

sudo apt-get update

sudo apt-get install apache2

2.指定自訂的網站位置

sudo vim /etc/apache2/apache2.conf

複製<Directory /var/www/ >的區塊將/var/www/變成你的網站路徑


【備分設定檔】

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/site-available/[你的網站名稱].conf



2017年1月15日 星期日

查詢TABLE中TRIGGER和移除


原本要使用MariaDB內建函式來產生UUID,後來覺得不妥,所以要移除

=====================================================

REATE TABLE USER(
USER_ID CHAR(36) NOT NULL DEFAULT 0,
EMAIL VARCHAR(100) NOT NULL UNIQUE,
PWD VARCHAR(200),
NAME VARCHAR(30),
NICK_NAME VARCHAR(50),
SEX CHAR(1),
HEIGHT DECIMAL(5,1),
WEIGHT DECIMAL(5,1),
BIRTHDAY DATE,
AGE INT,
HOME_PHONE VARCHAR(30),
MOBILE VARCHAR(30),
EMAIL2 VARCHAR(100) NOT NULL DEFAULT '',
PERSONAL_KEY VARCHAR(100) NOT NULL,
PRIMARY KEY (USER_ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;





CREATE TRIGGER TRIG_USER
  BEFORE INSERT ON USER
  FOR EACH ROW
  SET new.USER_ID = uuid();


==================================================



查詢TABLE中的TRIGGER

SHOW TRIGGERS LIKE 'USER';




移除TRIGGER

DROP TRIGGER IF EXISTS USER;






2017年1月6日 星期五

設定mariadb server 建立資料庫時預設使用utf8mb4格式

修改 /etc/mysql/my.cnf

sudo vim /etc/mysql/my.cnf

在[mysqld]中加上此行

=============================

[mysqld]

character-set-server=utf8mb4

collation-server=utf8mb4_general_ci

 =============================

2016年9月18日 星期日

Mariadb中Table資料的匯出與匯入(含DB匯出匯入)

開發時,有時需要倒一下線上機的資料來測試時


線上機( Ubuntu ) :

mysql -u root -p

SELECT * FROM [TABLE_NAME] INTO OUTFILE "/PATH/FILE_NAME.TXT";


本地測試機 (WINDOWS):

mysql -u root -p

LOAD DATA INFILE "D:\\PATH\\FILE_NAME.TXT" INTO TABLE [TABLE_NAME];


註.反斜線要兩個,不然會失敗


【匯出多個資料表到一個檔案中】

mysqldump -u user -p database_name table_1 table_2 table_3 > filename.sql


================【異機還原】===============

【DB匯出】

mysqldump -u[帳號] -p[密碼]  [DB名稱]>[檔案名稱]

mysqldump -uroot -proot nc > nc.sql

【DB匯入】

mysql -u[帳號] -p[密碼]  [DB名稱] < [檔案名稱]

mysql -uroot -proot nc < nc.sql


註1.

第一次安裝時mariadbDB預設密碼是root,變更密碼後忘了給'root'@'localhost'權限,結果出現Access denied for user 'root'@'localhost',搞很久最後加上sudo卻才可以登入真奇怪

 sudo  mysql -u root -p


查詢目前port

netstat -anp | grep :3306


重新載入設定檔而不重啟服務

sudo /etc/init.d/mysql reload






2016年7月10日 星期日

在Ubuntu 變更系統時區



使用外國的雲端主機都會有一個基本的困擾,就是時區的問題


指令:sudo dpkg-reconfigure tzdata 

執行後再選取你要設定的時區就可以了

參考文件:

https://help.ubuntu.com/community/UbuntuTime

http://www.arthurtoday.com/2015/02/ubuntu-command-line-reconfig-time-zone.html

2016年7月3日 星期日

mono server上執行偵錯指令


追蹤mono web 發生了什麼的錯誤,可以執行以下指令,就可以在ssh中看到錯誤的記錄

sudo MONO_OPTIONS=--debug xsp4 --verbose --port 80




2016年5月29日 星期日

RegularExpressions 正規表示式檢查函式


正整數1-3位或正整數含1-2位小數的浮點數

^(([0-9]{1,3})([.][0-9]{1,2})?)$


Email



身份証字號



手機



家用電話




熱門文章