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  Alltertable...
 Alltertable
 
 9/19/2011 10:11:07 AM
User is offlinebata01yu
55 posts


Alltertable
 (N/A)
Buna,
Din nou apelez la cunostintele voastre
Vreau sa introduc intr-o tabela o noua coloana numai in cazul in care aceasta nu exista
EX.
Am tabela a
introduc in tabela coloana test numai in cazul in care aceasta nu exista in tabela, daca aceasta coloana exista nu o mai introduc

Va multumesc anticipat.

 9/19/2011 10:31:02 AM
User is offlineRomeo
527 posts
1st


Re: AlltertableUSE
 (N/A)
USE tabela
SCATTER MEMVAR MEMO
IF VARTYPE(m.camp_nou)='U'
       && adaug campul la tabela
ELSE
       && campul exista in tabela
ENDIF

Slava Tatalui si Fiului si Sfantului Duh si acum si pururea si-n vecii vecilor. Amin.
 9/19/2011 10:37:35 AM
User is offlineclivius33
68 posts


Re: Alltertable
 (N/A)
Poti incerca si cu functia afields() dar e mai complicat. Cel mai simplu probabil ca este sa deschizi exclusiv tabela si apoi sa testezi existenta campului cu if vartype(test) = 'U' caz in care il adaugi cu un alter table add ...  (atentie sa nu ai definita vreo variabila cu numele 'test', vartype() iti va returna in acel caz tipul variabilei) !
 9/19/2011 12:00:17 PM
User is offlineDoru Constantin
321 posts
3rd




Re: Alltertable
 (N/A)
Functia FSize() returneaza 0 daca campul nu exista. Vezi sintaxa in help.
 9/19/2011 12:24:54 PM
User is offlinemmarius28
139 posts
5th


Re: Alltertable
 (N/A)
use tabela in 0 shared
if type("tabela.field1") = "U"
use in (select("tabela"))
use tabela in 0 exclusive

alter table tabela add field field1 C(10)
use in (select("tabela"))
use tabela in 0 shared
endif
 9/19/2011 1:16:06 PM
User is offlineEugen Gliga
1052 posts
1st




Re: Alltertable
 (N/A)
Chiar si functia Field("field1",alias) intoarce numele campului daca acesta exista.
 9/19/2011 7:33:00 PM
User is offlinealemao
111 posts
5th


Re: Alltertable
 (N/A)
Uite un exemplu simplu pentru tine.
Acest exemplu merge pe o tabelă fox denumită <TABELA> (ce lipsă de imaginaţie am avut),
creată cu următoarea structură: CAMP1 C(10), CAMP2 C(10).
Presupunem că este necesar să ştii dacă în tabelă există coloana CAMP3

La prima rulare progrămelul îţi va introduce coloana CAMP3.
La a doua rulare progrămelul te va atenţiona ca există coloana CAMP3.

Şi acum codul:

****************
CLOSE ALL
CLEAR ALL
CLEAR

SET TALK OFF
LOCAL llColoana

llColoana = .F.

IF !FILE("TABELA.DBF")
    CREATE TABLE tabela (CAMP1 C(10), CAMP2 C(10))
ENDIF

USE TABELA EXCLUSIVE

FOR lnContor=1 TO FCOUNT()
    IF FIELD(lnContor) = "CAMP3"
        llColoana = .T.
        lnContor = FCOUNT()
    ENDIF   
ENDFOR

IF llColoana
    MESSAGEBOX("Coloana cautata exista in tabela!","Info ...")
ELSE
    ALTER TABLE tabela ADD COLUMN Camp3 c(10)
    BROWSE
ENDIF

RETURN
*******************

Succes
 9/19/2011 11:04:24 PM
User is offlinebata01yu
55 posts


Re: Alltertable
 (N/A)
Va multumesc mult cu promptitudinea cu care mi-ati raspuns si pentru varietatea de solutii oferite.
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  Alltertable...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement