bool CSVDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) { char buf[8]; // Double check correctness of offset values if (Catfunc == FNC_NO) for (PCOLDEF cdp = To_Cols; cdp; cdp = cdp->GetNext()) if (cdp->GetOffset() < 1 && !cdp->IsSpecial()) { strcpy(g->Message, MSG(BAD_OFFSET_VAL)); return true; } // endif Offset // Call DOSDEF DefineAM with am=CSV so FMT is not confused with FIX if (DOSDEF::DefineAM(g, "CSV", poff)) return true; GetCharCatInfo("Separator", ",", buf, sizeof(buf)); Sep = (strlen(buf) == 2 && buf[0] == '\\' && buf[1] == 't') ? '\t' : *buf; Quoted = GetIntCatInfo("Quoted", -1); GetCharCatInfo("Qchar", "", buf, sizeof(buf)); Qot = *buf; if (Qot && Quoted < 0) Quoted = 0; else if (!Qot && Quoted >= 0) Qot = '"'; Fmtd = (!Sep || (am && (*am == 'F' || *am == 'f'))); Header = (GetIntCatInfo("Header", 0) != 0); Maxerr = GetIntCatInfo("Maxerr", 0); Accept = (GetIntCatInfo("Accept", 0) != 0); return false; } // end of DefineAM
bool PIVOTDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) { char *p1, *p2; PHC hc = ((MYCAT*)Cat)->GetHandler(); if (PRXDEF::DefineAM(g, am, poff)) return TRUE; Tabname = (char*)Tablep->GetName(); DB = (char*)Tablep->GetQualifier(); Tabsrc = (char*)Tablep->GetSrc(); Host = GetStringCatInfo(g, "Host", "localhost"); User = GetStringCatInfo(g, "User", "*"); Pwd = GetStringCatInfo(g, "Password", NULL); Picol = GetStringCatInfo(g, "PivotCol", NULL); Fncol = GetStringCatInfo(g, "FncCol", NULL); // If fncol is like avg(colname), separate Fncol and Function if (Fncol && (p1 = strchr(Fncol, '(')) && (p2 = strchr(p1, ')')) && (*Fncol != '"') && (!*(p2+1))) { *p1++ = '\0'; *p2 = '\0'; Function = Fncol; Fncol = p1; } else Function = GetStringCatInfo(g, "Function", "SUM"); GBdone = GetBoolCatInfo("Groupby", false); Accept = GetBoolCatInfo("Accept", false); Port = GetIntCatInfo("Port", 3306); Desc = (Tabsrc) ? Tabsrc : Tabname; return FALSE; } // end of DefineAM
bool TBLDEF::DefineAM(PGLOBAL g, LPCSTR, int) { char *tablist, *dbname, *def = NULL; Desc = "Table list table"; tablist = GetStringCatInfo(g, "Tablist", ""); dbname = GetStringCatInfo(g, "Dbname", "*"); def = GetStringCatInfo(g, "Srcdef", NULL); Ntables = 0; if (*tablist) { char *p, *pn, *pdb; PTABLE tbl; for (pdb = tablist; ;) { if ((p = strchr(pdb, ','))) *p = 0; // Analyze the table name, it may have the format: // [dbname.]tabname if ((pn = strchr(pdb, '.'))) { *pn++ = 0; } else { pn = pdb; pdb = dbname; } // endif p // Allocate the TBLIST block for that table tbl = new(g) XTAB(pn, def); tbl->SetSchema(pdb); if (trace) htrc("TBL: Name=%s db=%s\n", tbl->GetName(), tbl->GetSchema()); // Link the blocks if (Tablep) Tablep->Link(tbl); else Tablep = tbl; Ntables++; if (p) pdb = pn + strlen(pn) + 1; else break; } // endfor pdb Maxerr = GetIntCatInfo("Maxerr", 0); Accept = GetBoolCatInfo("Accept", false); Thread = GetBoolCatInfo("Thread", false); } // endif tablist return FALSE; } // end of DefineAM
bool XCLDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) { char buf[8]; Xcol = GetStringCatInfo(g, "Colname", ""); GetCharCatInfo("Separator", ",", buf, sizeof(buf)); Sep = (strlen(buf) == 2 && buf[0] == '\\' && buf[1] == 't') ? '\t' : *buf; Mult = GetIntCatInfo("Mult", 10); return PRXDEF::DefineAM(g, am, poff); } // end of DefineAM
bool WMIDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) { Nspace = GetStringCatInfo(g, "Namespace", "Root\\CimV2"); Wclass = GetStringCatInfo(g, "Class", (!stricmp(Nspace, "root\\cimv2") ? "ComputerSystemProduct" : !stricmp(Nspace, "root\\cli") ? "Msft_CliAlias" : "")); if (!*Wclass) { sprintf(g->Message, "Missing class name for %s", Nspace); return true; } else if (!strchr(Wclass, '_')) { char *p = (char*)PlugSubAlloc(g, NULL, strlen(Wclass) + 7); Wclass = strcat(strcpy(p, "Win32_"), Wclass); } // endif Wclass if (Catfunc == FNC_NO) Ems = GetIntCatInfo("Estimate", 100); return false; } // end of DefineAM