Patch level : 12.0 nopatch

Files correlati     :
Commento:
This commit is contained in:
Alessandro Bonazzi 2022-04-18 12:13:46 +02:00
parent f655fd3b10
commit 176f259322
3 changed files with 36 additions and 29 deletions

View File

@ -108,6 +108,8 @@ bool TTable_application::user_create()
return false;
_tabname = argv(2);
if (_tabname == "ĘU")
_tabname = "%CAU";
_tabname.upper();
_rel = new TRelation(_tabname);

View File

@ -26,28 +26,35 @@ const real SSimple_query::sq_get_real(const char * field)
return app;
}
TString SSimple_query::sq_get(const char* field, bool rtrim)
const TString & SSimple_query::sq_get(const char* field, const bool rtrim)
{
TString fld = _rec.get(field);
TString & fld = get_tmp_string(1024);
fld = _rec.get(field);
if (rtrim)
fld.rtrim();
return fld;
}
TString SSimple_query::sq_get(const string& field, const bool rtrim)
const TString & SSimple_query::sq_get(const string& field, const bool rtrim)
{
return sq_get(field.c_str(), rtrim);
}
TString SSimple_query::sq_get(TString& field, bool rtrim)
const TString & SSimple_query::sq_get(TString& field, const bool rtrim)
{
return sq_get(static_cast<const char*>(field), rtrim);
return sq_get((const char *)field, rtrim);
}
TString SSimple_query::sq_get(unsigned int column, bool rtrim)
const TString & SSimple_query::sq_get(unsigned int column, const bool rtrim)
{
return _rec.get(column);
TString & val = get_tmp_string(1024);
val << _rec.get(column);
if (rtrim)
val.rtrim();
return val;
}
unsigned SSimple_query::sq_get_num_fields() const
@ -55,9 +62,12 @@ unsigned SSimple_query::sq_get_num_fields() const
return _rec.get_num_fields();
}
TString SSimple_query::sq_get_name_field(const unsigned column) const
const TString & SSimple_query::sq_get_name_field(const unsigned column) const
{
return _rec.get_name_field(column);
TString & name = get_tmp_string();
name = _rec.get_name_field(column);
return name;
}
int SSimple_query::sq_get_width_field(const unsigned column) const
@ -75,6 +85,8 @@ TFieldtypes SSimple_query::sq_get_type_field(const unsigned column) const
return _boolfld;
if (type == "dtShort")
return _intfld;
if (type == "dtLong")
return _longfld;
if (type == "dtULong")
return _longfld;
if (type == "dtDouble")

View File

@ -40,29 +40,22 @@
#ifndef __STRINGS_H
#include <strings.h>
#endif // !__STRINGS_H
#endif //
#ifndef __DATE_H
#include <date.h>
#endif // !__DATE_H
#endif //
#ifndef __REAL_H
#include <real.h>
#endif // !__REAL_H
#endif //
#define CHIAVE_ID_ "_ID_"
#include "recset.h"
/********************************************************************************
* SSimpleQuery (Sirio Simple Query) *
* SSimpleQuery (Sirio Simple Query) *
* "Wrapper" di TXvt_recordset, implementa OGNI funzione in modo tale da *
* poterlo sostituire brutalmente in qualsiasi momento così da non aver *
* problemi come durante il passaggio da ISAM a SQL (spero). *
* Se ti stai domandando perchè non è stata usata l'ereditarietà (magari con *
* un bel ": private TXvt_recordset" così da bloccare il tutto) è per bloccare *
* qualsiasi riferimento a questa classe in eventuali reimplementazioni future. *
* Preferisco scrivere un po' di codice ridondante adesso che andare a fare *
* salti mortali dopo *
* problemi come durante il passaggio da ISAM a SQL (spero). che cazzata da riscrivere *
********************************************************************************/
class SSimple_query
{
@ -160,19 +153,19 @@ public:
/**< Ritorna il valore nel campo (field) in formato (SADateTime), Campo non gestisce le ore */
//SADateTime sqGetDateTime(const char* field) { get_short(field); }
/**< Ritorna il valore nel campo (field) passato come (const char *) in formato (const char *) */
TString sq_get(const char* field, bool rtrim = true);
const TString & sq_get(const char* field, bool rtrim = true);
/**< Ritorna il valore nel campo (field) passato come (string) in formato (const char *) */
TString sq_get(const string& field, bool rtrim = true);
const TString & sq_get(const string& field, bool rtrim = true);
/**< Ritorna il valore nel campo (field) passato come (TString) in formato (const char *) */
TString sq_get(TString& field, bool rtrim = true);
const TString & sq_get(TString& field, bool rtrim = true);
/**< Ritorna il valore della colonna numero (column) passato come (unsigned int) */
TString sq_get(unsigned int column, bool rtrim = true);
const TString & sq_get(unsigned int column, bool rtrim = true);
/**< Ritorna il valore nel campo (field) in formato (char) */
const char sq_get_char(const char* field) { return _rec.get_char(field); }
/**< Ritorna il numero di campi dopo l'ultimo comando di esecuzione effettuato; se il risultato esiste */
unsigned int sq_get_num_fields() const;
/**< Ritorna il nome del campo numero (column) in formato (TString= */
TString sq_get_name_field(unsigned column) const;
/**< Ritorna il nome del campo numero (column) in formato (TString) = */
const TString & sq_get_name_field(unsigned column) const;
/**< Ritorna la grandezza del campo numero (column) */
int sq_get_width_field(unsigned column) const;
/**< Ritorna il tipo del campo numero (column) in formato (TFieldtypes) */
@ -198,12 +191,12 @@ public:
void defrost() { _rec.defrost(); }
/**< Costruttore, non inizializza nulla, da caricare successivamente */
SSimple_query() = default;
SSimple_query() {};
/**< Costruttore, Accetta in ingresso dei parametri per la connessione, volendo è anche possibile impostare una query ed eseguirla. Attenzione! Non risponde se la query ha avuto un esito positivo o negativo! */
SSimple_query(const char* db, const char* user, const char* pass, const TT_driver tipo_db, const char * query = "", const bool ex = false, const bool freezed = false) : _rec(db, user, pass, tipo_db, query, ex, freezed) {}
//SSimpleQuery(const TString& db, const TString& user, const TString& pass, TT_driver tipoDb, const char * query = "", const bool ex = false, const bool freezed = false) : _rec(db, user, pass, tipoDb, query, ex, freezed) {}
/**< Distruttore */
virtual ~SSimple_query() = default;
virtual ~SSimple_query() {};
};
#endif