Patch level :10.0 nuovo CD

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :sistemato problema conversione con file aventi nomi lunghi (chiave con nome lungo di conseguenza e scrittura dei gen sputtanata)


git-svn-id: svn://10.65.10.50/trunk@17563 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2008-11-05 16:33:58 +00:00
parent fecd62abff
commit 7d477f0e05

View File

@ -488,18 +488,17 @@ HIDDEN void do_key(const char *fname, RecDes *r, TAG4INFO *tag_info, int n_keys)
xvt_str_make_upper(tiname);
for (i=0; ((i < MaxKeys) && (i < n_keys)); i++)
{
tag_info[i].name=(char *)u4alloc(9);
tag_info[i].name=(char *)u4alloc(_MAX_FNAME);
tag_info[i].expression=(char *)u4alloc(256);
tag_info[i].filter=(char*)u4alloc(20);
tag_info[i].filter=(char*)u4alloc(32);
tag_info[i].descending=0;
if (r->Ky[i].DupKeys)
tag_info[i].unique=0;
else
tag_info[i].unique= i == 0 ? e4unique : r4unique_continue;
tag_info[i].unique= i == 0 ? e4unique : r4unique_continue;
strcpy((char *)tag_info[i].filter,".NOT. DELETED()"); /* Not available for DBIII and CLIPPER */
strcpy((char *)tag_info[i].name,tiname) ;
if (strlen(tiname) < 8)
strcat((char *)tag_info[i].name," ");
strcat((char *)tag_info[i].name," ");
tag_info[i].name[strlen(tag_info[i].name)-1] = '0' + i + 1;
for (j=0; j < r->Ky[i].NkFields; j++)
{
@ -544,8 +543,8 @@ HIDDEN void do_key(const char *fname, RecDes *r, TAG4INFO *tag_info, int n_keys)
case _longzerofld:
{
char ts[8];
strcat((char *)tag_info[i].expression,",");
sprintf(ts,"%d",r->Fd[nf].Len);
strcat((char *)tag_info[i].expression,",");
strcat((char *)tag_info[i].expression,ts);
strcat((char *)tag_info[i].expression,",0)");
}
@ -805,14 +804,16 @@ int DB_build(const char * filename, RecDes *r)
FIELD4INFO field_info[MaxFields+1]; /* Numero di campi in un record */
TAG4INFO tag_info[MaxKeys+1]; /* Numero di chiavi in un file */
DATA4 *dbuilded;
DATA4 *dbuilded = NULL;
int rt=0,i;
const char *ff = find_slash_backslash(filename);
memset(field_info, 0, sizeof(field_info));
memset(tag_info, 0, sizeof(tag_info));
for (i=0; ((i<r->NFields) && (i<MaxFields)); i++) /* Construct field_info */
{
field_info[i].name = (char*)u4alloc(12);
field_info[i].name = (char*)u4alloc(16); // In realtà basterebbero 12
strcpy(field_info[i].name,r->Fd[i].Name);
field_info[i].len = r->Fd[i].Len;
field_info[i].dec = r->Fd[i].Dec;
@ -858,7 +859,9 @@ int DB_build(const char * filename, RecDes *r)
rt=code_base.errorCode;
else
rt=d4close(dbuilded);
if (u4switch() & 2 || u4switch() & 8) /* Rebuild filename.cgp for CLIPPER AND DBIII only */
/* Non abbiamo mai usato e spariamo mai useremo questo genere di files!!!!
if (u4switch() & 2 || u4switch() & 8) //Rebuild filename.cgp for CLIPPER AND DBIII only
{
FILE* fp;
char xx[81];
@ -872,7 +875,7 @@ int DB_build(const char * filename, RecDes *r)
fprintf(fp,"%s\n",tag_info[j].name);
fclose(fp);
}
}
}*/
if (rt!=0)
rt=code_base.errorCode;
for (i=0; ((i < MaxFields) && (i < r->NFields)); i++)