Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  NUMERIC OVERFLO...
 NUMERIC OVERFLOW CIUDAT
 
 7/13/2006 10:08:04 AM
User is offlineCLASSOFT
231 posts
www.classoft.ro
4th


NUMERIC OVERFLOW CIUDAT
 (N/A)
Se da un camp cu numele ID_PROD tip  CARACTER C(13)  unde este depozitata valoarea codului unui produs : "2E52102731" 
Se copiaza valoarea in memorie cu comanda SCAT MEMV  deci se creeaza in memorie variabila m.ID_PROD. Daca se descarca variabila cu GATH MEMV intr-un alt camp de acelasi tip se obtine eroarea NUMERIC OVERFLOW !.
Deci FOX-ul dupa cum se pare ignora tipul caracter si evalueza "2E51102731" de tip numeric (2 x 10 la PUTEREA ...) .
Ati mai patit-o ?

Cristi Birlea - CLASSOFT ( www.classoft.ro )

 7/13/2006 10:19:46 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: NUMERIC OVERFLOW CIUDAT
 (Romania)

Cristi,

Nu e o confuzie a VFP. Mai verifica, te rog. Eu am testat scenariul si merge as expected:

*-- Creare tabele, inserare cod
Set Safety Off
Create Table
Sursa
( ;
   
ID_Prod C(13
))
Create Table Destinatie
( ;
   
ID_Prod C(13
))

Close Tables All
Use
Sursa In
0
Use Destinatie In
0
Select
Sursa
Append Blank
Replace
ID_Prod With
"2E52102731"

*-- Testul propriuzis:
Select
Sursa
Scatter Memvar
Select
Destinatie
Append Blank
Gather Memvar


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/13/2006 10:30:03 AM
User is offlineCLASSOFT
231 posts
www.classoft.ro
4th


Re: NUMERIC OVERFLOW CIUDAT
 (N/A)
Intr-adevar eu mai am niste indexi pe VAL()
Unii clienti folosesc coduri numerice  altii alfanumerice.
Pentru cei cu coduri numerice am nevoie de indexi pe VAL pentru ordonare 1,2,3,...10  nu 1,10,2,3
Insa nu vad care este lagatura intre REPLACE si INDEX ???
La indexare nu da eroare ...
Vezi codul de mai jos cu bube :

Set Safety Off
Create Table Sursa ( ;
   ID_Prod C(13))
   INDEX ON ID_Prod TAG ID_Prod
   INDEX ON VAL(ID_Prod) TAG VID_Prod
Create Table Destinatie ( ;
   ID_Prod C(13))
   INDEX ON ID_Prod TAG ID_Prod
   INDEX ON VAL(ID_Prod) TAG VID_Prod
Close Tables All
Use Sursa In 0
Use Destinatie In 0
Select Sursa
Append Blank
Replace ID_Prod With "2E52102731"

*-- Testul propriuzis:
Select Sursa
Scatter Memvar
Select Destinatie
Append Blank
Gather Memvar

Cristi Birlea - CLASSOFT (www.classoft.ro)
 7/13/2006 10:40:14 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: NUMERIC OVERFLOW CIUDAT
 (Romania)

Codul de mai sus nu da eroare la indexare pentru ca in momentul ala inca n-are valori :) Daca muti INDEX ON dupa replace, da eroare si la indexare :)

Pe de alta parte, numeric overflow e normal pe exemplul de mai sus. 2 * 10 urmat de 52102731 zerouri iese si din memoria supercalculatoarelor de la NASA. Scoate indexul pe VAL. Faptul ca unii clienti au coduri de-alea, altii au coduri de-alelalte e o problema de business, nu de data design. In cel mai rau caz, ai putea include linia cu index on VAL() (desi, fie vorba intre noi, nu pricep de ce ai pus-o acolo - nu vad nici o utilitate pentru un index VAL() pus pe un camp de tip caracter) intr-un IF TYPE("id_Prod") = "C" / INDEX / ENDIF.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/13/2006 10:41:41 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: NUMERIC OVERFLOW CIUDAT
 (Romania)

 CLASSOFT wrote
Deci FOX-ul dupa cum se pare ignora tipul caracter si evalueza "2E51102731" de tip numeric (2 x 10 la PUTEREA ...) .

Nu, nu-l ignora. TU il fortezi, cu indexul ala pe VAL().


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/13/2006 10:53:01 AM
User is offlineCLASSOFT
231 posts
www.classoft.ro
4th


Re: NUMERIC OVERFLOW CIUDAT
 (N/A)
Asta era raspunsul asteptat : Codul de mai sus nu da eroare la indexare pentru ca in momentul ala inca n-are valori . Asa am patit si eu si am atribuit eronat eroarea la REPLACE.

Multumesc Grig

Cristi Birlea - CLASSOFT ( www.classoft.ro )
 7/13/2006 10:55:42 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: NUMERIC OVERFLOW CIUDAT
 (Romania)
You're welcome :)
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  NUMERIC OVERFLO...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement