Search  
Monday, December 09, 2019 ..:: 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 11:11:07 AM
User is offlinebata01yu
60 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 11:31:02 AM
User is offlineRomeo
664 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
 9/19/2011 11:37:35 AM
User is offlineclivius33
190 posts
5th


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 1:00:17 PM
User is offlineDoru Constantin
445 posts
2nd




Re: Alltertable
 (N/A)
Functia FSize() returneaza 0 daca campul nu exista. Vezi sintaxa in help.
 9/19/2011 1:24:54 PM
User is offlinemmarius28
327 posts
3rd


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 2:16:06 PM
User is offlineEugen Gliga
2092 posts
1st




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


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/20/2011 12:04:24 AM
User is offlinebata01yu
60 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-2013 Profox   Terms Of Use  Privacy Statement