AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADS Create Table per SQL
Thema durchsuchen
Ansicht
Themen-Optionen

ADS Create Table per SQL

Ein Thema von gmc616 · begonnen am 13. Jul 2006 · letzter Beitrag vom 18. Jul 2006
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

ADS Create Table per SQL

  Alt 13. Jul 2006, 19:14
Datenbank: ADS_Local • Version: 7 • Zugriff über: ADS
Hallo DPler,

Wie schafft man es, dass man mit den ADS-Komponeten eine Table mittles SQL anlegen kann?
CREATE TABLE test (id integer); Wenn ich versuche diesen befehle mit TAdsQuery.ExecSql auszuführen bekomme ich immer
Code:
Error 6420: The 'discovery' process for the Advantage Database Server failed. Unable to connect to the Advantage Database Server. axServerConnect
obwohl die vorherige Abfrage TAdsConnection.IsConnected TRUE ergeben hat.
Auch SELECT's auf andere Tabellen klappen prima. Nur das Anlegen nicht.

Ziel Sache ist, dass mein Programm per SQL aus einem File (z.B. update.sql) Tabellen erstellen oder modifieren können soll.

Weiß irgendwer Rat?

Grüße
gmc
  Mit Zitat antworten Zitat
seifman
(Gast)

n/a Beiträge
 
#2

Re: ADS Create Table per SQL

  Alt 13. Jul 2006, 20:18
Hi.


Kannst Du mal nen bissl mehr dazu posten? (Quelltext)

mfg seifman
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: ADS Create Table per SQL

  Alt 13. Jul 2006, 22:09
Hallo Probiere doch mal folgenden Befehl :
CREATE TABLE datenbankname.test (id integer);
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
et2004
(Gast)

n/a Beiträge
 
#4

Re: ADS Create Table per SQL

  Alt 14. Jul 2006, 08:12
Die Fehlermeldung hatte ich auch schon mal. Das Problem lag beim Aufbau der Verbindung zur Datenbank. Bei der ADS gibt es mehrere Möglichkeiten diese Verbindung aufzubauen:

- über einen richtigen ADS-Server
- mit ALS quasi ein lokaler "Server"
- AIS (habe ich noch nie benutzt)

Nehmen wir mal den lokalen "Server". Bei der Komponente TAdsConnection die Eigenschaft AdsServerTypes auf stADS_LOCAL setzen, den Alias zur Datenbank eitragen und die Eigenschaft IsConnected auf true setzen.

Danach bei TAdsQuery die Eigenschaft Databasename = Name der TAdsConnection (siehe Oben) und dann sollte es klappen.
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
678 Beiträge
 
Delphi 12 Athens
 
#5

Re: ADS Create Table per SQL

  Alt 14. Jul 2006, 09:22
Zitat von gmc616:
Code:
Error 6420: The 'discovery' process for the Advantage Database Server failed. Unable to connect to the Advantage Database Server. axServerConnect
Der Fehler kann beim Local Server nicht kommen. Ich vermute, Du hast die Query nicht an deine AdsConnection gebunden:
AdsQuery1.DatabaseName:=Adsconnection1.Name; Übrigens: ich hatte schon mehrfach den Fehler bei Programmstart gesehen, wenn die AdsTable/AdsQuery Komponenten im Mainform liegen, die AdsConnection aber im Datenmodul. Immer war eine falsche Erstellungsreihenfolge schuld (immer erst das Datenmodul erzeugen!).
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: ADS Create Table per SQL

  Alt 18. Jul 2006, 12:06
[OT] So, wieder mal Zeit sich den Delphi-Problemen zu widmen[/OT]

Hmm ... , der Tipp von RWarnecke macht leider kein Unterschied.

Aber die Änderung nach Joachim's TippQueryRef.DatabaseName:=ConnRef.Name; hat eine andere Fehlermeldung gebracht.
Code:
The DatabaseName property has not been assigned a value.
Wie kann das denn sein?
Vorher hatte ich QueryRef.DatabaseName:='ConnRef'; was in meinen anderen Programmen in der Art eigentlich funktionierte.

Um zu zeigen wo rum es eigendlich geht, hier mal der Code:
Delphi-Quellcode:
ConnRef := TAdsConnection.Create(nil);
try
  ConnRef.ConnectPath := 'D:\Data\';
  ConnRef.AdsServerTypes := [stADS_LOCAL];
  ConnRef.Connect;
  if ConnRef.IsConnected then
  begin
    QueryRef := TAdsQuery.Create(nil);
    // QueryRef.DatabaseName := 'ConnRef';
    QueryRef.DatabaseName := ConnRef.Name;
    QueryRef.SourceTableType := ttAdsCDX; // Muss CDX sein!
    QueryRef.AdsTableOptions.AdsCharType := OEM; // Muss OEM sein!

    QueryRef.SQL.Text := 'CREATE TABLE test (id integer);';
    try
      QueryRef.ExecSQL;
    except on E: EADSDatabaseError do
      ShowMessage (e.Message);
    end;

    QueryRef.close;
    QueryRef.Free;
  end;
finally
  ConnRef.Free;
end;
Mit der Reihenfolge der Erstellungen sollte es somit keine Probleme geben.
Meine AdsKomponenten liegen nicht auf einer Form, denn in meiner Unit gibt es keine Form.

Irgendwo habe ich einen Denkfehler, ich weiß aber nicht wo.
Oder ich seh den Wald von lauter Bäumen nicht!?

Grüße
gmc
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: ADS Create Table per SQL

  Alt 18. Jul 2006, 12:30
Wenn Du das machst...
QueryRef.DatabaseName := ConnRef.Name; ... musst Du vorher auch dies tun
ConnRef.Name := 'ConnRef';
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: ADS Create Table per SQL

  Alt 18. Jul 2006, 12:48
Also doch der Wald!

Danke, das war es!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz