Corretta creazione della chiave

git-svn-id: svn://10.65.10.50/trunk@3730 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1996-10-08 13:24:43 +00:00
parent 880ce20da5
commit b9b081562b

View File

@ -618,19 +618,23 @@ HIDDEN void do_key(char *fname, RecDes *r, TAG4INFO *tag_info, int n_keys)
} /* Le chiavi composte da campi data non necessitano di funzioni di traduzione. */
strcat(tag_info[i].expression,r->Fd[nf].Name); /* Append field name */
if (r->Ky[i].FromCh[j] != 255) /* If partial field was specified */
{ /* add parameters to SUBSTR */
/* If partial field was specified */
/* add parameters to SUBSTR */
/*
if (r->Ky[i].FromCh[j] != 255)
{
char ts[8];
strcat(tag_info[i].expression,",");
sprintf(ts,"%d",r->Ky[i].FromCh[j]);
sprintf(ts,"%d",r->Ky[i].FromCh[j] + 1);
strcat(tag_info[i].expression,ts);
strcat(tag_info[i].expression,",");
sprintf(ts,"%d",r->Ky[i].ToCh[j] - r->Ky[i].FromCh[j] + 1);
strcat(tag_info[i].expression,ts);
strcat(tag_info[i].expression,")");
}
*/
switch (r->Fd[nf].TypeF) /* If numeric field was specified */
{ /* add parameters to STR */
@ -658,6 +662,18 @@ HIDDEN void do_key(char *fname, RecDes *r, TAG4INFO *tag_info, int n_keys)
/* Close parentheses if UPPER or DTOS operators were used: */
if (r->Ky[i].FieldSeq[j] > MaxFields || (r->Fd[nf].TypeF == _datefld))
strcat(tag_info[i].expression,")");
if (r->Ky[i].FromCh[j] != 255) /* If partial field was specified */
{ /* add parameters to SUBSTR */
char ts[8];
strcat(tag_info[i].expression,",");
sprintf(ts,"%d",r->Ky[i].FromCh[j] + 1);
strcat(tag_info[i].expression,ts);
strcat(tag_info[i].expression,",");
sprintf(ts,"%d",r->Ky[i].ToCh[j] - r->Ky[i].FromCh[j] + 1);
strcat(tag_info[i].expression,ts);
strcat(tag_info[i].expression,")");
}
/* If there's another field in key adds "+" operator: */
if ((j < (r->Ky[i].NkFields-1)) && (strlen(r->Fd[nf].Name) > 0))
strcat(tag_info[i].expression,"+");