Aggiornato metodo renum_key dei TRecord_array
git-svn-id: svn://10.65.10.50/trunk@1256 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
191345de81
commit
9f8e74a226
@ -1,4 +1,4 @@
|
||||
// $Id: relation.cpp,v 1.35 1995-04-14 12:14:56 guy Exp $
|
||||
// $Id: relation.cpp,v 1.36 1995-04-18 08:40:52 guy Exp $
|
||||
// relation.cpp
|
||||
// fv 12/8/93
|
||||
// relation class for isam files
|
||||
@ -1318,6 +1318,14 @@ TRecord_array::TRecord_array(int logicnum, const char* numfield)
|
||||
: _file(logicnum), _num(numfield)
|
||||
{}
|
||||
|
||||
const TRectype& TRecord_array::key() const
|
||||
{
|
||||
TRectype* r = (TRectype*)objptr(0);
|
||||
CHECK(r, "A TRecord_array lost its key");
|
||||
return *r;
|
||||
}
|
||||
|
||||
|
||||
TRectype& TRecord_array::row(int n, bool create)
|
||||
{
|
||||
TRectype* r = (TRectype*)objptr(n);
|
||||
@ -1333,16 +1341,25 @@ TRectype& TRecord_array::row(int n, bool create)
|
||||
|
||||
bool TRecord_array::renum_key(const char* field, const TString& num)
|
||||
{
|
||||
CHECKS(!num.blank(), "Blank key value for field: ", field);
|
||||
|
||||
TRectype* r = (TRectype*)objptr(0);
|
||||
if (r == NULL)
|
||||
{
|
||||
r = new TRectype(_file);
|
||||
r->zero();
|
||||
add(r, 0);
|
||||
}
|
||||
|
||||
const TString& curr = key().get(field);
|
||||
CHECKS(!curr.blank() && !num.blank(), "Bad key field for record: ", field);
|
||||
|
||||
if (curr == num)
|
||||
return FALSE;
|
||||
|
||||
for (int i = last(); i >= 0; i--)
|
||||
{
|
||||
TRectype* o = (TRectype*)objptr(i);
|
||||
if (o) o->put(field, num);
|
||||
r = (TRectype*)objptr(i);
|
||||
if (r) r->put(field, num);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@ -1408,7 +1425,7 @@ int TRecord_array::read(const TRectype& filter)
|
||||
}
|
||||
|
||||
int TRecord_array::write(bool re)
|
||||
{
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
TLocalisamfile f(_file);
|
||||
|
Loading…
x
Reference in New Issue
Block a user