dBase Tabellen verarbeiten mit Advantage Database Server SQL

Der Advantage Database Server (ADS) ist einer der wenigen SQL-Server, der direkt dBase-Dateien verarbeiten kann. Eine sehr interessante Variante ist der sogenannte Local-Server, der im Wesentlichen die gleichen Verarbeitungsmöglichkeiten besitzt wie die großen Client/Server-Versionen des ADS.

Der freie (!!) Local Server hat überdiese den Vorteil, dass er nur aus wenigen Dateien (er selbst sogar nur aus einer DLL (in der Windows-Version)) besteht und nicht installiert werden muss.  Es muss lediglich die entsprechende DLL im Zugrff sein.

Für interaktive Arbeiten gibt es zusätzlich den Database Architect mit dem sofort Tests gefahren werden können.  Auch er braucht nicht installiert zu werden, sondern kann durch Bereitstellung der DLLs in jedem Verzeichnis installiert werden und über “arc32″ gestartet werden.

Um direkt dBase-Tabellen direkt im Architect ansprechen zu können muss vorab eine Data-Connection eingerichtet werden. Hier ein Beispiel:

  • ConnectionPath:  E:\
  • Databasename: php
  • Username: <default> lassen
  • Table Type: cdx oder ntx
  • Server Typ: local

das war’s.

 

 

Ein paar Beispiele für ADS-SQL-Anweisung:


Beispiel: Select auf dBase-Tabelle mit zusammengesetzen, benutzerdefinierten Spalten und “group by”.

Tipp: Nicht vergessen, die Spalten aus dem Select in Group by zu wiederholen, da sonst ein Fehler gemeldet wird.

select
   Source, destinat, source+destinat as connection , count(source+destinat) as Summe  from "aus.dbf"  
where
   protocol like 'R-SB-Radius-01%'
group
   by    source+destinat, Source, destinat

 


Beispiel: Select mit Case 

select
ADRESSEN.ADRESSNUM,
ADRESSEN.KDNR,
ADRESSEN.FIRMA1,
ADRESSEN.PREFIX,
ADRESSEN.NAME,
ADRESSEN.ZUSATZ,
ADRESSEN.BRIEFANRED,
ADRESSEN.STRASSE,
ADRESSEN.LAND,
ADRESSEN.PLZ,
ADRESSEN.ORT,
ADRESSEN.LIEFJN,
ADRESSEN.TELEFON,
ADRESSEN.FAX,
ADRESSEN.STATUS,
ADRESSEN.STATUS1,
ADRESSEN.STATUS2,
ADRESSEN.SELECTION,
ADRESSEN.MAHNSTUFE,
ADRESSEN.MAHNDATUM,
ADRESSEN.KATEGORIE,
ADRESSEN.RECHJN,
ADRESSEN.BANKJN,
ADRESSEN.LASTUSE,
ADRESSEN.RABATTGRP,
ADRESSEN.RABATT as adr_rabatt,
ADRESSEN.ANZCODE,
ADRESSEN.GESPERRT,
ADRESSEN.ZAHLZIEL,
ADRESSEN.KREDIT,
ADRESSEN.MATCHCODE,
ADRESSEN.AUFNAHME,
ADRESSEN.VERTRETER,
ADRESSEN.DBMARK,
ADRESSEN.FAKTART,
ADRESSEN.MAILSP,
ADRESSEN.PREISLST,
ADRESSEN.PREISGRP,
ADRESSEN.TEXTNO,
ADRESSEN.EBANK,
ADRESSEN.PROVGRP,
ADRESSEN.C1,
ADRESSEN.C2,
ADRESSEN.C3,
ADRESSEN.C4,
ADRESSEN.CC1,
ADRESSEN.CC2,
ADRESSEN.CC3,
ADRESSEN.C5,
ADRESSEN.VERT_INT,
FIXOFFEN.RECHNUM,
FIXOFFEN.AUFTRAG,
FIXOFFEN.BESTDATUM,
FIXOFFEN.FORMART,
FIXOFFEN.DATUM,
FIXOFFEN.ZAHLUNGSZI,
FIXOFFEN.FRACHT,
FIXOFFEN.MWST,
FIXOFFEN.NETTO_1,
FIXOFFEN.NETTO_2,
FIXOFFEN.NETTO_0,
FIXOFFEN.MWST_1,
FIXOFFEN.MWST_2,
FIXOFFEN.MWSTSATZ_1,
FIXOFFEN.MWSTSATZ_2,
FIXOFFEN.BEZAHLT,
FIXOFFEN.BEZAHLDATU,
FIXOFFEN.KONTOAUSZU,
FIXOFFEN.DIREKT,
FIXOFFEN.MARK,
FIXOFFEN.GELOESCHT,
FIXOFFEN.STORNO,
FIXOFFEN.MAHNGEB,
FIXOFFEN.ETTIK,
FIXOFFEN.AUSLAND,
FIXOFFEN.AUSGETR,
FIXOFFEN.REMID,
FIXOFFEN.WARENGRP,
FIXOFFEN.BEARBEITER,
FIXOFFEN.STATION,
FIXOFFEN.BESTELL,
FIXOFFEN.BESTNAME,
FIXOFFEN.WERBTEXT,
FIXOFFEN.WVKW,
FIXOFFEN.LSOPEN,
FIXOFFEN.KOPIEZAHL,
FIXOFFEN.MINUS,
FIXOFFEN.GEDRUCKT,
FIXOFFEN.PROVSATZ,
case
 WHEN "FIXOFFEN.FORMART" = 'RE' THEN 1
 WHEN "FIXOFFEN.FORMART" = 'GU' THEN -1
 WHEN "STORNO" =True THEN 0
end as "FAKTOR",
FIXOFFEN.RABATT as fixrabatt,
ARTIKEL.ARTIKBEZ,
ARTIKEL.VERGRIF,
ARTIKEL.LAGER,
ARTIKEL.RABATTGRP,
ARTIKEL.G_ARNR,
ARTIKEL.G_LTN,
ARTIKEL.G_ANZ,
ARTIKEL.G_SET,
ARTIKEL.G_EDATUM,
ARTIKEL.G_PRODUKTB,
ARTIKEL.G_PREISART,
ARTIKEL.G_PREISERM,
ARTIKEL.G_PB,
ARTIKEL.G_PA,
ARTIKEL.G_PU,
ARTIK_PR.ABRECH_ART,
ARTIK_PR.HONORAR_AB,
ARTIK_PR.ABZUG,
ARTIK_PR.KUENST_ID,

VARLISTE.NUM,
VARLISTE.ARTIKNUM,
VARLISTE.NETTO as Vnetto,
case
  WHEN VNETTO>0 and VNETTO<2 THEN 1
  else 0
end as "B2B",
VARLISTE.STCK,

case
   WHEN "Land" = 'D  ' and  "STD_NETTO" = VARLISTE.NETTO THEN 'MOD'
   WHEN "Land" = 'D  '  and "STD_NETTO" <> VARLISTE.NETTO  THEN 'D'
   WHEN "Land" = 'A  '  and "STD_NETTO" = VARLISTE.NETTO  THEN 'MOA'
   WHEN "Land" = 'A  '  and "STD_NETTO" <> VARLISTE.NETTO  THEN 'A'
   WHEN "Land" = 'CH ' and "STD_NETTO" =VARLISTE.NETTO  THEN 'MOCH'
   WHEN "Land" = 'CH ' and "STD_NETTO" <> VARLISTE.NETTO  THEN 'CH'
   WHEN "LAND"<> 'D  ' and "LAND"<> 'A  ' and "LAND"<> 'CH  '   then 'MOXXX'
   else 'XXXXX'
end as "GEMAKAT",

case
 WHEN "FIXOFFEN.FORMART" = 'RE' THEN STCK
 else 0
end as STCK_ALL,

case
 WHEN "FIXOFFEN.FORMART" = 'GU' THEN STCK
 else 0
end as STCK_GUT,

case
 WHEN "STORNO" =True THEN STCK
 else 0
end as "STCK_STO",

VARLISTE.STD_NETTO ,
case
WHEN "Std_netto"<="PREISKAT1" THEN "PROV1"
WHEN "Std_netto"<="PREISKAT2" THEN "PROV2"
WHEN "Std_netto"<="PREISKAT3" THEN "PROV3"
WHEN "Std_netto"<="PREISKAT4" THEN "PROV4"
WHEN "Std_netto"<="PREISKAT5" THEN "PROV5"
else 0
end as "PROVISION"
from adressen,fixoffen,  varliste, artikel, artik_pr where
fixoffen.adressnum=adressen.adressnum
and fixoffen.rechnum=varliste.rechnum
and varliste.num=artikel.num
and artikel.artiknum=artik_pr.artiknum

 

 

 

 

2 comments to dBase Tabellen verarbeiten mit Advantage Database Server SQL

  • R.Peter

    Hallo
    Existiert irgendwo ein Dbasebrowser (Workbench) mit Advantage Database wie früher der Dbu.Exe
    im CLipper für Dbase NTX ?

    Gruss
    R.Peter

    • admin

      Hallo Herr Peter,
      nein ein direkt vergleichbares Produkt ist mir nicht bekannt.
      Allerdings kann man im Architekt per Select * from die Tabelle ebenfalls browsen. Man kann die Struktur der Tabellen direkt editieren usw.
      Aber ich habe die DBU wirklich nie vermisst.
      Hätten Sie ein konkretes Anwendungsbeispiel für Ihre Anforderungen?
      Grüße
      Peter Dahlmann

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>