Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da dodam polje u postojecoj tabeli?

[es] :: Pascal / Delphi / Kylix :: Kako da dodam polje u postojecoj tabeli?

[ Pregleda: 4145 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

chips
Blazin Srdjan

Član broj: 14803
Poruke: 342
212.200.78.*



Profil

icon Kako da dodam polje u postojecoj tabeli?11.11.2006. u 00:20 - pre 212 meseci
Imam postojecu paradox tabelu sa dvadesteak polja i želim da dodam jos jedno polje iz programa tipa ALPHA.
Kako ovo da uradim, a da postojeće podatke ne diram. Znači treba mi nešto kao

addfield ili createfield.

Je li postoji ovako nesto?
Sto puta sam ti SRPSKI rekao:
ono što jednom crack-uješ,
ne možeš više da patch-uješ!
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.kalik.info.



Profil

icon Re: Kako da dodam polje u postojecoj tabeli?11.11.2006. u 00:36 - pre 212 meseci
Zavisi koje komponente koristiš!?! TTable ili TQuery?
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

chips
Blazin Srdjan

Član broj: 14803
Poruke: 342
212.200.78.*



Profil

icon Re: Kako da dodam polje u postojecoj tabeli?12.11.2006. u 00:07 - pre 212 meseci
Koristim TTable, ali mislim da me nisi dobro razumeo. Necu da dodam komponenti jos jedno polje kao ono za kalkulisanje, vec u samoj bazi hocu da dodam jedno polje znaci postojecatabela.DB da dobije jos jedno polje ,a da to ne radim iz Database Desktop-a vec iz samog programa.
Sto puta sam ti SRPSKI rekao:
ono što jednom crack-uješ,
ne možeš više da patch-uješ!
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
80.93.240.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: Kako da dodam polje u postojecoj tabeli?12.11.2006. u 01:02 - pre 212 meseci
Ne, nego nisi ti razumei losniscg-a ;). Ako koristis TTable ne znam kako bi to mogao da uradis, ali bi sa TQuery-em mogao vrlo lako pomocu Alter Table-a, sto opet zahteva bar malo znanja SQL-a...
 
Odgovor na temu

chips
Blazin Srdjan

Član broj: 14803
Poruke: 342
212.200.78.*



Profil

icon Re: Kako da dodam polje u postojecoj tabeli?12.11.2006. u 08:07 - pre 212 meseci
Pa recimo da imam malo znanja iz SQL-a, i kako bi to uradio?

Meni treba ovako nesto, ali ovo je primer kada kreiras novu tablu, a ja bi da prosirim postojecu samo za jos jedno polje, pa sam se umrsio???

with Table1 do begin
Active := False;
DatabaseName := 'DBDEMOS';
TableType := ttParadox;
TableName := 'CustInfo';

{ Don't overwrite an existing table }

if not Table1.Exists then begin
{ The Table component must not be active }
{ First, describe the type of table and give }
{ it a name }
{ Next, describe the fields in the table }
with FieldDefs do begin
Clear;
with AddFieldDef do begin
Name := 'Field1';
DataType := ftInteger;
Required := True;
end;
with AddFieldDef do begin

Name := 'Field2';
DataType := ftString;
Size := 30;
end;
end;
{ Next, describe any indexes }
with IndexDefs do begin
Clear;
{ The 1st index has no name because it is
{ a Paradox primary key }
with AddIndexDef do begin
Name := '';
Fields := 'Field1';
Options := [ixPrimary];
end;
with AddIndexDef do begin

Name := 'Fld2Indx';
Fields := 'Field2';
Options := [ixCaseInsensitive];
end;
end;
{ Call the CreateTable method to create the table }
CreateTable;
end;
end;

[Ovu poruku je menjao chips dana 12.11.2006. u 09:29 GMT+1]
Sto puta sam ti SRPSKI rekao:
ono što jednom crack-uješ,
ne možeš više da patch-uješ!
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako da dodam polje u postojecoj tabeli?12.11.2006. u 09:42 - pre 212 meseci
> Koristim TTable, ali mislim da me nisi dobro razumeo. Necu da dodam komponenti jos jedno polje kao ono za kalkulisanje, vec u samoj bazi hocu da dodam jedno > polje znaci postojecatabela.DB da dobije jos jedno polje ,a da to ne radim iz Database Desktop-a vec iz samog programa.

Nije bitno koje komponente koristiš jer nisi vezan isljučivo za njih. Kod Paradox tabela, imaš dva načina, DbiDoRestructure i local sql ALTER TABLE komanda. Primere možeš naći u Borland Shared\BDE u BDE32.HLP i LOCALSQL.HLP.
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
*.teol.net.



Profil

icon Re: Kako da dodam polje u postojecoj tabeli?12.11.2006. u 19:28 - pre 212 meseci
Evo linkovi, ako koristiš BDE:

http://info.borland.com/devsup...bdeapiex/dbidorestructure.html
http://info.borland.com/devsupport/bde/bdeapiex/
 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
62.108.111.*



+2 Profil

icon Re: Kako da dodam polje u postojecoj tabeli?20.11.2006. u 14:15 - pre 212 meseci
samo vas gledam.
zasto niko coveku da pokaze bilo kakvo resenje. to mu je potrebno.

znaci ovako: postavi TQuery i onda na neki event:
Code:

...
Query1.sql.text:='alter table NazivTabele add NovoPolje integer';
Query1.ExecSQL;
...


Pozdrav
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Kako da dodam polje u postojecoj tabeli?20.11.2006. u 16:13 - pre 212 meseci
> samo vas gledam.
> zasto niko coveku da pokaze bilo kakvo resenje. to mu je potrebno.

Bolje je dati samo upute kako se problem rešava, a iz nekoliko pokušaja će sam dostići rešenje. Zašto je bolje? Zato što će u tom procesu istraživati, čitati help, isprobavati i naučiti nešto novo što nema alternativu.
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
*.teol.net.



Profil

icon Re: Kako da dodam polje u postojecoj tabeli?20.11.2006. u 20:14 - pre 212 meseci
Citat:
badam: samo vas gledam.
zasto niko coveku da pokaze bilo kakvo resenje. to mu je potrebno. ...

Evo kopirano sa prvog linka koji sam već dao ranije, a tamo ima još dosta korisnih stvari:
Code:
Example 10: Add a field to a Paradox or dBASE table.
This example will add a field to the end of an existing table.
NOTE: You must fill in all options in the ChangeRec with 0 or '' if the option is not used in the restructure. FillChar can be used to do this: Fillchar(MyChangeRec, sizeof(MyChangeRec), 0);
This example uses the following input:
AddField(Table1, MyChangeRec);
ChangeRec is defind as follows:

ChangeRec = packed record
    szName: DBINAME;
    iType: word;
    iSubType: word;
    iLength: word;
    iPrecision: byte;
  end;

The function is defined as follows:

procedure AddField(Table: TTable; NewField: ChangeRec);
var
  Props: CURProps;
  hDb: hDBIDb;
  TableDesc: CRTblDesc;
  pFlds: pFLDDesc;
  pOp: pCROpType;
  B: byte;

begin
  // Make sure the table is open exclusively so we can get the db handle...
  if Table.Active = False then
    raise EDatabaseError.Create('Table must be opened to restructure');
  if Table.Exclusive = False then
    raise EDatabaseError.Create('Table must be opened exclusively to restructure');

  // Get the table properties to determine table type...
  Check(DbiSetProp(hDBIObj(Table.Handle), curxltMODE, integer(xltNONE)));
  Check(DbiGetCursorProps(Table.Handle, Props));
  pFlds := AllocMem((Table.FieldCount + 1) * sizeof(FLDDesc));
  FillChar(pFlds^, (Table.FieldCount + 1) * sizeof(FLDDesc), 0);
  Check(DbiGetFieldDescs(Table.handle, pFlds));

  for B := 1 to Table.FieldCount do begin
    pFlds^.iFldNum := B;
    Inc(pFlds, 1);
  end;
  try
    StrCopy(pFlds^.szName, NewField.szName);
    pFlds^.iFldType := NewField.iType;
    pFlds^.iSubType := NewField.iSubType;
    pFlds^.iUnits1  := NewField.iLength;
    pFlds^.iUnits2  := NewField.iPrecision;
    pFlds^.iFldNum  := Table.FieldCount + 1;
  finally
    Dec(pFlds, Table.FieldCount);
  end;

  pOp := AllocMem((Table.FieldCount + 1) * sizeof(CROpType));
  Inc(pOp, Table.FieldCount);
  pOp^ := crADD;
  Dec(pOp, Table.FieldCount);

  // Blank out the structure...
  FillChar(TableDesc, sizeof(TableDesc), 0);
  //  Get the database handle from the table's cursor handle...
  Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
  // Put the table name in the table descriptor...
  StrPCopy(TableDesc.szTblName, Table.TableName);
  // Put the table type in the table descriptor...
  StrPCopy(TableDesc.szTblType, Props.szTableType);
  // Close the table so the restructure can complete...
  TableDesc.iFldCount := Table.FieldCount + 1;
  Tabledesc.pfldDesc := pFlds;
  TableDesc.pecrFldOp := pOp;
  Table.Close;
  // Call DbiDoRestructure...
  try
    Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, FALSE));
  finally
    FreeMem(pFlds);
    FreeMem(pOp);
    Table.Open;
  end;
end;

Samo treba iskopirati ovaj kod i trebalo bi da radi.
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Kako da dodam polje u postojecoj tabeli?

[ Pregleda: 4145 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.