diff --git a/src/restapi/DbMariaDbAccessor.cpp b/src/restapi/DbMariaDbAccessor.cpp
index 498e8c8..1db373e 100644
--- a/src/restapi/DbMariaDbAccessor.cpp
+++ b/src/restapi/DbMariaDbAccessor.cpp
@@ -15,12 +15,12 @@ DbMariaDbAccessor::~DbMariaDbAccessor()
 
 void DbMariaDbAccessor::GetDefaultConnStr(SQLTCHAR DefConnStr[Global::MAX_PARAM_LENGTH])
 {
-	lstrcpy(DefConnStr, L"Driver={MariaDB ODBC 3.1 Driver};Server=localhost;UID=UID;PWD=PWD;DB=DATABASE_NAME;Port=3306;");
+	StkPlLStrCpy((wchar_t*)DefConnStr, L"Driver={MariaDB ODBC 3.1 Driver};Server=localhost;UID=UID;PWD=PWD;DB=DATABASE_NAME;Port=3306;");
 }
 
 int DbMariaDbAccessor::GetNumOfRecords(SQLTCHAR* TableName, SQLTCHAR StateMsg[10], SQLTCHAR* Msg, SQLSMALLINT MsgLen)
 {
-	int LenOfTableName = lstrlen((wchar_t*)TableName);
+	size_t LenOfTableName = StkPlWcsLen((wchar_t*)TableName);
 	SQLTCHAR* EcdTableName = new SQLTCHAR[LenOfTableName * 4 + 2];
 	SqlEncoding(TableName, EcdTableName, TYPE_KEY);
 
@@ -32,11 +32,11 @@ int DbMariaDbAccessor::GetNumOfRecords(SQLTCHAR* TableName, SQLTCHAR StateMsg[10
 	bool FilterSwitch = DataAccess::GetInstance()->GetFilterSwitch();
 	for (int Loop = 1; Loop <= 5; Loop++) {
 		DataAccess::GetInstance()->GetFilterCondition(Loop, ColumnName[Loop - 1], &OpeType[Loop - 1], Value[Loop - 1]);
-		SqlEncoding(ColumnName[Loop - 1], ColumnNameCnv[Loop - 1], TYPE_KEY);
+		SqlEncoding((SQLTCHAR*)ColumnName[Loop - 1], (SQLTCHAR*)ColumnNameCnv[Loop - 1], TYPE_KEY);
 		if (FilterSwitch && (OpeType[Loop - 1] == 10 || OpeType[Loop - 1] == 11)) {
-			SqlEncoding(Value[Loop - 1], ValueCnv[Loop - 1], TYPE_LIKE_VALUE);
+			SqlEncoding((SQLTCHAR*)Value[Loop - 1], (SQLTCHAR*)ValueCnv[Loop - 1], TYPE_LIKE_VALUE);
 		} else {
-			SqlEncoding(Value[Loop - 1], ValueCnv[Loop - 1], TYPE_VALUE);
+			SqlEncoding((SQLTCHAR*)Value[Loop - 1], (SQLTCHAR*)ValueCnv[Loop - 1], TYPE_VALUE);
 		}
 	}
 
@@ -52,11 +52,11 @@ SQLRETURN DbMariaDbAccessor::GetTables(StkObject* Obj, SQLTCHAR StateMsg[10], SQ
 	wchar_t ConnStr[256];
 	int Init;
 	int DbmsType = DataAccess::GetInstance()->GetOdbcConfing(ConnStr, &Init);
-	Ret = OpenDatabase(ConnStr, StateMsg, Msg, MsgLen);
+	Ret = OpenDatabase((SQLTCHAR*)ConnStr, StateMsg, Msg, MsgLen);
 	if (Ret != SQL_SUCCESS) {
 		return Ret;
 	}
-	Ret = GetTablesCommon(L"show tables;", Obj, StateMsg, Msg, MsgLen);
+	Ret = GetTablesCommon((SQLTCHAR*)L"show tables;", Obj, StateMsg, Msg, MsgLen);
 	Ret = CloseDatabase(StateMsg, Msg, MsgLen);
 
 	return Ret;
@@ -71,17 +71,17 @@ int DbMariaDbAccessor::GetColumnInfoByTableName(SQLTCHAR* TableName, StkObject*
 	wchar_t ConnStr[256];
 	int Init;
 	int DbmsType = DataAccess::GetInstance()->GetOdbcConfing(ConnStr, &Init);
-	Ret = OpenDatabase(ConnStr, StateMsg, Msg, MsgLen);
+	Ret = OpenDatabase((SQLTCHAR*)ConnStr, StateMsg, Msg, MsgLen);
 	if (Ret != SQL_SUCCESS) {
 		return 0;
 	}
 
-	int LenOfTableName = lstrlen((wchar_t*)TableName);
+	size_t LenOfTableName = StkPlWcsLen((wchar_t*)TableName);
 	SQLTCHAR* EcdTableName = new SQLTCHAR[LenOfTableName * 4 + 2];
 	SqlEncoding(TableName, EcdTableName, TYPE_KEY);
 
 	SQLTCHAR SqlBuf[1024];
-	StkPlSwPrintf(SqlBuf, 1024, L"show full columns from %ls;", EcdTableName);
+	StkPlSwPrintf((wchar_t*)SqlBuf, 1024, L"show full columns from %ls;", (wchar_t*)EcdTableName);
 	Ret = SQLExecDirect(Hstmt, SqlBuf, SQL_NTS);
 	delete EcdTableName;
 	if (Ret != SQL_SUCCESS) {
@@ -108,16 +108,16 @@ int DbMariaDbAccessor::GetColumnInfoByTableName(SQLTCHAR* TableName, StkObject*
 			SQLGetDiagRec(SQL_HANDLE_STMT, Hstmt, 1, StateMsg, &Native, Msg, MsgLen, &ActualMsgLen);
 			return 0;
 		}
-		lstrcpyn(TmpColumnName, TmpColumnNameTmp, Global::COLUMNNAME_LENGTH); // For adaptation to the bug of MariaDB ODBC connector
-		lstrcpyn(TmpColumnType, TmpColumnTypeTmp, Global::COLUMNTYPE_LENGTH); // For adaptation to the bug of MariaDB ODBC connector
+		StkPlWcsCpy((wchar_t*)TmpColumnName, (size_t)Global::COLUMNNAME_LENGTH, (wchar_t*)TmpColumnNameTmp); // For adaptation to the bug of MariaDB ODBC connector
+		StkPlWcsCpy((wchar_t*)TmpColumnType, (size_t)Global::COLUMNTYPE_LENGTH, (wchar_t*)TmpColumnTypeTmp); // For adaptation to the bug of MariaDB ODBC connector
 		ConvertAttrType(TmpColumnType, ColTypeCnv);
 		StkObject* ClmObj = new StkObject(L"ColumnInfo");
-		ClmObj->AppendChildElement(new StkObject(L"title", TmpColumnName));
+		ClmObj->AppendChildElement(new StkObject(L"title", (wchar_t*)TmpColumnName));
 		ClmObj->AppendChildElement(new StkObject(L"width", 100));
-		ClmObj->AppendChildElement(new StkObject(L"dataType", ColTypeCnv));
+		ClmObj->AppendChildElement(new StkObject(L"dataType", (wchar_t*)ColTypeCnv));
 		ClmObj->AppendChildElement(new StkObject(L"dataIndx", Loop));
-		ClmObj->AppendChildElement(new StkObject(L"coltype", TmpColumnType));
-		ClmObj->AppendChildElement(new StkObject(L"isnull", TmpIsNull));
+		ClmObj->AppendChildElement(new StkObject(L"coltype", (wchar_t*)TmpColumnType));
+		ClmObj->AppendChildElement(new StkObject(L"isnull", (wchar_t*)TmpIsNull));
 		TblObj->AppendChildElement(ClmObj);
 	}
 	Ret = CloseDatabase(StateMsg, Msg, MsgLen);
@@ -131,19 +131,19 @@ int DbMariaDbAccessor::GetRecordsByTableName(SQLTCHAR* TableName, int NumOfCols,
 	wchar_t ConnStr[256];
 	int Init;
 
-	int LenOfTableName = lstrlen((wchar_t*)TableName);
+	size_t LenOfTableName = StkPlWcsLen((wchar_t*)TableName);
 	SQLTCHAR* EcdTableName = new SQLTCHAR[LenOfTableName * 4 + 2];
 	SqlEncoding(TableName, EcdTableName, TYPE_KEY);
 
 	SQLTCHAR* EcdSortTarget = NULL;
 	if (SortTarget != NULL && *SortTarget != L'\0') {
-		int LenOfSortTarget = lstrlen((wchar_t*)SortTarget);
+		size_t LenOfSortTarget = StkPlWcsLen((wchar_t*)SortTarget);
 		EcdSortTarget = new  SQLTCHAR[LenOfSortTarget * 4 + 2];
 		SqlEncoding(SortTarget, EcdSortTarget, TYPE_KEY);
 	}
 
 	int DbmsType = DataAccess::GetInstance()->GetOdbcConfing(ConnStr, &Init);
-	Ret = OpenDatabase(ConnStr, StateMsg, Msg, MsgLen);
+	Ret = OpenDatabase((SQLTCHAR*)ConnStr, StateMsg, Msg, MsgLen);
 
 	wchar_t ColumnName[5][Global::COLUMNNAME_LENGTH];
 	wchar_t ColumnNameCnv[5][Global::COLUMNNAME_LENGTH * 4 + 2];
@@ -153,15 +153,15 @@ int DbMariaDbAccessor::GetRecordsByTableName(SQLTCHAR* TableName, int NumOfCols,
 	bool FilterSwitch = DataAccess::GetInstance()->GetFilterSwitch();
 	for (int Loop = 1; Loop <= 5; Loop++) {
 		DataAccess::GetInstance()->GetFilterCondition(Loop, ColumnName[Loop - 1], &OpeType[Loop - 1], Value[Loop - 1]);
-		SqlEncoding(ColumnName[Loop - 1], ColumnNameCnv[Loop - 1], TYPE_KEY);
+		SqlEncoding((SQLTCHAR*)ColumnName[Loop - 1], (SQLTCHAR*)ColumnNameCnv[Loop - 1], TYPE_KEY);
 		if (FilterSwitch && (OpeType[Loop - 1] == 10 || OpeType[Loop - 1] == 11)) {
-			SqlEncoding(Value[Loop - 1], ValueCnv[Loop - 1], TYPE_LIKE_VALUE);
+			SqlEncoding((SQLTCHAR*)Value[Loop - 1], (SQLTCHAR*)ValueCnv[Loop - 1], TYPE_LIKE_VALUE);
 		} else {
-			SqlEncoding(Value[Loop - 1], ValueCnv[Loop - 1], TYPE_VALUE);
+			SqlEncoding((SQLTCHAR*)Value[Loop - 1], (SQLTCHAR*)ValueCnv[Loop - 1], TYPE_VALUE);
 		}
 	}
 
-	int NumOfRecs = GetRecordsByTableNameCommon(EcdTableName, NumOfCols, DatObj, ColumnNameCnv, OpeType, ValueCnv, EcdSortTarget, SortOrder, Limit, Offset, StateMsg, Msg, MsgLen);
+	int NumOfRecs = GetRecordsByTableNameCommon(EcdTableName, NumOfCols, DatObj, ColumnNameCnv, OpeType, ValueCnv, (wchar_t*)EcdSortTarget, (wchar_t*)SortOrder, Limit, Offset, StateMsg, Msg, MsgLen);
 
 	delete EcdTableName;
 	if (EcdSortTarget != NULL) {
@@ -173,27 +173,27 @@ int DbMariaDbAccessor::GetRecordsByTableName(SQLTCHAR* TableName, int NumOfCols,
 
 int DbMariaDbAccessor::ConvertAttrType(SQLTCHAR InAttr[Global::COLUMNTYPE_LENGTH], SQLTCHAR OutAttr[Global::COLUMNTYPE_LENGTH])
 {
-	if (wcsstr(InAttr, L"bigint") != NULL ||
-		wcsstr(InAttr, L"int") != NULL ||
-		wcsstr(InAttr, L"mediumint") != NULL ||
-		wcsstr(InAttr, L"smallint") != NULL ||
-		wcsstr(InAttr, L"tinyint") != NULL) {
-		lstrcpy(OutAttr, L"integer");
+	if (StkPlWcsStr((wchar_t*)InAttr, L"bigint") != NULL ||
+		StkPlWcsStr((wchar_t*)InAttr, L"int") != NULL ||
+		StkPlWcsStr((wchar_t*)InAttr, L"mediumint") != NULL ||
+		StkPlWcsStr((wchar_t*)InAttr, L"smallint") != NULL ||
+		StkPlWcsStr((wchar_t*)InAttr, L"tinyint") != NULL) {
+		StkPlLStrCpy((wchar_t*)OutAttr, L"integer");
 		return 0;
 	}
-	if (wcsstr(InAttr, L"float") != NULL ||
-		wcsstr(InAttr, L"double") != NULL ||
-		wcsstr(InAttr, L"double precision") != NULL) {
-		lstrcpy(OutAttr, L"float");
+	if (StkPlWcsStr((wchar_t*)InAttr, L"float") != NULL ||
+		StkPlWcsStr((wchar_t*)InAttr, L"double") != NULL ||
+		StkPlWcsStr((wchar_t*)InAttr, L"double precision") != NULL) {
+		StkPlLStrCpy((wchar_t*)OutAttr, L"float");
 		return 0;
 	}
-	lstrcpy(OutAttr, L"string");
+	StkPlLStrCpy((wchar_t*)OutAttr, L"string");
 	return 0;
 }
 
 void DbMariaDbAccessor::SqlEncoding(SQLTCHAR* InSql, SQLTCHAR* OutSql, int Type)
 {
-	int LenOfInSql = lstrlen(InSql);
+	size_t LenOfInSql = StkPlWcsLen((wchar_t*)InSql);
 	int OutSqlIndex = 0;
 	if (Type == TYPE_KEY) {
 		OutSql[0] = L'`';
@@ -201,32 +201,32 @@ void DbMariaDbAccessor::SqlEncoding(SQLTCHAR* InSql, SQLTCHAR* OutSql, int Type)
 	}
 	for (int Loop = 0; Loop < LenOfInSql; Loop++) {
 		if (InSql[Loop] == L'`' && Type == TYPE_KEY) {
-			lstrcpy(&OutSql[OutSqlIndex], L"``");
+			StkPlLStrCpy((wchar_t*) & OutSql[OutSqlIndex], L"``");
 			OutSqlIndex += 2;
 			continue;
 		}
 		if (InSql[Loop] == L'\'' && (Type == TYPE_VALUE || Type == TYPE_LIKE_VALUE)) {
-			lstrcpy(&OutSql[OutSqlIndex], L"\'\'");
+			StkPlLStrCpy((wchar_t*)&OutSql[OutSqlIndex], L"\'\'");
 			OutSqlIndex += 2;
 			continue;
 		}
 		if (InSql[Loop] == L'\\' && Type == TYPE_VALUE) {
-			lstrcpy(&OutSql[OutSqlIndex], L"\\\\");
+			StkPlLStrCpy((wchar_t*)&OutSql[OutSqlIndex], L"\\\\");
 			OutSqlIndex += 2;
 			continue;
 		}
 		if (InSql[Loop] == L'\\' && Type == TYPE_LIKE_VALUE) {
-			lstrcpy(&OutSql[OutSqlIndex], L"\\\\\\\\");
+			StkPlLStrCpy((wchar_t*)&OutSql[OutSqlIndex], L"\\\\\\\\");
 			OutSqlIndex += 4;
 			continue;
 		}
 		if (InSql[Loop] == L'%' && Type == TYPE_LIKE_VALUE) {
-			lstrcpy(&OutSql[OutSqlIndex], L"\\%");
+			StkPlLStrCpy((wchar_t*)&OutSql[OutSqlIndex], L"\\%");
 			OutSqlIndex += 2;
 			continue;
 		}
 		if (InSql[Loop] == L'_' && Type == TYPE_LIKE_VALUE) {
-			lstrcpy(&OutSql[OutSqlIndex], L"\\_");
+			StkPlLStrCpy((wchar_t*)&OutSql[OutSqlIndex], L"\\_");
 			OutSqlIndex += 2;
 			continue;
 		}