#include #include #include #include #include #include #include "sqlbase.h" #include "dbinit.h" #include "dbroutes.h" #include "dbutil.h" void FgetsTrim(char *s) { s[strlen(s) - 1] = '\0'; } char *GetText(VARS *v, int n) { static char buf[10000]; GetWindowText(v->hwndEdit[n], buf, 10000); return buf; } void ToTitle(VARS *v) { char *s, *p; int i; HWND focus; if (! (focus = GetFocus())) return; for (i = 0; i < v->nFields; i++) { if (focus == v->hwndEdit[i]) break; } s = GetText(v, i); if (! strlen(s)) return; s = strlwr(s); *s = toupper(*s); for (p = s + 1; *p; p++) { while ((*p == ' ') || (*p == '-') || (*p == '/') || (*p == '.') || (*p == ',') || (*p == '(') || (*p == ')')) { p++; if (! *p) goto end; *p = toupper(*p); } } end: SetWindowText(v->hwndEdit[i], s); } void ToUpper(VARS *v) { char *s; int i; HWND focus; if (! (focus = GetFocus())) return; for (i = 0; i < v->nFields; i++) { if (focus == v->hwndEdit[i]) break; } s = GetText(v, i); if (! strlen(s)) return; SetWindowText(v->hwndEdit[i], strupr(s)); } int Empty(VARS *v) { int i, empty = 1; for (i = 0; i < v->nFields; i++) { if (strlen(GetText(v, i))) { empty = 0; break; } } return empty; } void ClearFields(VARS *v) { int i; for (i = 0; i < v->nFields; i++) SetWindowText(v->hwndEdit[i], ""); } void SetFields(VARS *v) { SQLRESULT *r; SQLRESFIELD *rf; int i; char s[50]; for (i = 0, r = v->result; i < v->rowNum; i++) r = r->next; for (i = 0, rf = r->fields; rf; i++, rf = rf->next) SetWindowText(v->hwndEdit[i], rf->data); sprintf(s, "Row %d of %d", v->rowNum + 1, v->numRows); ShowStatus(v->hwndStatus, 0, s); } void GetRow(VARS *v, int mode) { if (v->numRows == 0) return; switch (mode) { case 0: v->rowNum = 0; break; case 1: if (v->rowNum) v->rowNum--; break; case 2: if (v->rowNum < (v->numRows - 1)) (v->rowNum)++; break; case 3: v->rowNum = v->numRows - 1; } SetFields(v); } .