void getStrFieldData(HWND hwnd, SQLWCHAR **param, int idc) { x_free(*param); *param= NULL; int len = Edit_GetTextLength(GetDlgItem(hwnd,idc)); if (len>0) { *param= (SQLWCHAR *)myodbc_malloc((len + 1) * sizeof(SQLWCHAR), MYF(0)); if (*param) Edit_GetText(GetDlgItem(hwnd,idc), *param, len+1); } }
BOOL INSTAPI ConfigDSN(HWND hWnd, WORD nRequest, LPCSTR pszDriverA, LPCSTR pszAttributesA) { BOOL rc; size_t lenDriver = strlen(pszDriverA); size_t lenAttrib = strlen(pszAttributesA); /* We will assume using one-byte Latin string as a subset of UTF-8 */ SQLWCHAR *pszDriverW= (SQLWCHAR *) myodbc_malloc((lenDriver + 1) * sizeof(SQLWCHAR), MYF(0)); SQLWCHAR *pszAttributesW= (SQLWCHAR *)myodbc_malloc((lenAttrib + 1) * sizeof(SQLWCHAR), MYF(0)); utf8_as_sqlwchar(pszDriverW, lenDriver, (SQLCHAR* )pszDriverA, lenDriver); utf8_as_sqlwchar(pszAttributesW, lenAttrib, (SQLCHAR* )pszAttributesA, lenAttrib); rc= ConfigDSNW(hWnd, nRequest, pszDriverW, pszAttributesW); x_free(pszDriverW); x_free(pszAttributesW); return rc; }
void getUnsignedFieldData(HWND hwnd, unsigned int *param, int idc) { *param = 0U; int len = Edit_GetTextLength(GetDlgItem(hwnd,idc)); if(len>0) { SQLWCHAR *tmp1= (SQLWCHAR *)myodbc_malloc((len + 1) * sizeof(SQLWCHAR), MYF(0)); if (tmp1) { Edit_GetText(GetDlgItem(hwnd,idc), tmp1, len+1); *param = _wtol(tmp1); x_free(tmp1); } } }