AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mit UIB Komponente Datensatz in FireBird Tabelle einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit UIB Komponente Datensatz in FireBird Tabelle einfügen

Ein Thema von GuenterS · begonnen am 6. Sep 2007 · letzter Beitrag vom 8. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#1

Mit UIB Komponente Datensatz in FireBird Tabelle einfügen

  Alt 6. Sep 2007, 23:36
Datenbank: FireBird • Version: 1.5 • Zugriff über: UIB
Hallo,

ich versuche gerade mittels den UIB Komponenten einen Eintrag in einer Tabelle zu machen, bekomme jedoch immer Fehlermeldungen.

Delphi-Quellcode:
  with TJvUIBquery.Create(nil) do
  try
    DataBase := dmIntern.InternDB;
    Transaction := dmIntern.IBTransaction;
    SQL.Text := 'INSERT INTO kontakte (K_KONTAKTEID, ADRESSENID, ANSPRECHPARTNERID, '
      + ' K_DATUMK, K_BEREICH, K_FEHLERKLASSE, K_ABGESCHLOSSEN, K_EIN_AUS, K_PUBLIC_PRIVATE, '
      + ' K_ANLAGEN, PR_PRODUKTEID, KA_KONTAKTARTID, K_GELOESCHT, K_ZEIT, '
      + ' K_VERRECHNET, TODO_SYSID, K_DRINGLICHKEIT_STR, K_UNTERBEREICH, ST_STATUSID) '
      + ' VALUES(:K_KONTAKTEID, :ADRESSENID, :ANSPRECHPARTNERID, '
      + ' :K_DATUMK, :K_BEREICH, :K_FEHLERKLASSE, :K_ABGESCHLOSSEN, :K_EIN_AUS, :K_PUBLIC_PRIVATE, '
      + ' :K_ANLAGEN, :PR_PRODUKTEID, :KA_KONTAKTARTID, :K_GELOESCHT, :K_ZEIT, '
      + ' :K_VERRECHNET, :TODO_SYSID, :K_DRINGLICHKEIT_STR, :K_UNTERBEREICH, :ST_STATUSID)';

    Params.ByNameAsInteger['K_KONTAKTEID'] := lKID;
    Params.ByNameAsString['ADRESSENID'] := GetComboBoxID(ComboKunde, ComboKunde.ItemIndex);
    Params.ByNameAsString['ANSPRECHPARTNERID'] := GetComboBoxID(ComboAnsp, ComboAnsp.ItemIndex);
    Params.ByNameAsDateTime['K_DATUMK'] := now;
    Params.ByNameAsString['K_BEREICH'] := GetComboBoxID(ComboBereich, ComboBereich.ItemIndex);
    Params.ByNameAsString['K_FEHLERKLASSE'] := GetComboBoxID(ComboTODO, ComboTODO.ItemIndex);
    Params.ByNameAsInteger['K_ABGESCHLOSSEN'] := 0;
    Params.ByNameAsInteger['K_EIN_AUS'] := 0;
    Params.ByNameAsInteger['K_PUBLIC_PRIVATE'] := 0;
    Params.ByNameAsInteger['K_ANLAGEN'] := 0;
    Params.ByNameAsString['PR_PRODUKTEID'] := GetComboBoxID(ComboPRodukt, ComboProdukt.ItemIndex);
    Params.ByNameAsString['KA_KONTAKTARTID'] := GetComboBoxID(ComboKontaktart, ComboKontaktArt.ItemIndex);
    Params.ByNameAsInteger['K_GELOESCHT'] := 0;
    Params.ByNameAsDateTime['K_ZEIT'] := now;
    Params.ByNameAsInteger['K_VERRECHNET'] := 0;
    Params.ByNameAsString['TODO_SYSID'] := GetComboBoxID(ComboTodo, ComboTodo.ItemIndex);
    Params.ByNameAsString['K_DRINGLICHKEIT_STR'] := ComboDringlichkeit.Text;
    Params.ByNameAsString['K_UNTERBEREICH'] := Edit1.Text;
    Params.ByNameAsString['ST_STATUSID'] := GetComboBoxID(ComboStatus, ComboStatus.ItemIndex);
    ExecSQL;


  finally
    Free;
  end;
Zitat von Exception:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt todoXP.exe ist eine Exception der Klasse EUIBError mit der Meldung 'arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets
can't format message 13:198 -- message file F:\d7\bin\firebird.msg not found
Error Code: 1' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Was mache ich falsch? Wenn das ganze z.B.: eine TMSQuery oder TADOQuery für den MS SQL-Server wäre würde das ja funktionieren.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 06:10
Hi,

ich vermute mal 2 Fehler:

1. Du arbeitest mit einer nicht vollständigen embedded FB-Installation oder einer nicht korrekt installierten Server-Version
2. Deine Datenbank hat eine andere Einstellung des Character-Sets als deine TUIBDatabase-Komponente

zu 2.: In den Verbidnungseinstellungen der Komponente musst Du den selben CharacterSet einstellen wie du ihn bei der ERstellung der DB angegeben hast. Für deutschsprachige DBs empfiehlt sich ISO8859_1

zu 1.: Müsste ich erst mal wissen was Du hast (FBServer oder Embedded)....
Grüße
Lemmy
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 07:24
Hallo,

3. Ein übergebener String-Wert (z.B. der des Edit) ist zu gross.


Heiko
Heiko
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 07:33
Warum lässt du das Insert nicht vom Dataset selber erzeugen ? Dann müssten nur noch die Felder besetzt werden. Entweder mit DBEdits usw. oder eben mit FieldByName.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 08:15
Weil UIB keine BDE ist!!!!
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 08:21
Was hat das mit BDE zu tun ? Gibts da keinen Dataset - Generator, Insert, Post usw. Befehle ?
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 08:52
Aber auch dann hätte er das Problem, das die übergebenen Werte zu groß(lang) sind.
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 09:19
Hätte er nicht ! Sind dem Dataset die Felder per SQL-Generator bekannt gegeben, dann reicht statt einer grausamen Din A 4 Seite Insert-Codes das hier :

Delphi-Quellcode:
DS.Insert;
DS.FieldByName ('..').As...;
DS.Post;
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 12:33
Hallo,

erstmal danke für die viele Antworten.

Ich wollte einfach nur ein Insert Ding abschicken, daher keine Datenbankgebundenen Steuerelemente.

Das Feld erlaubt übrigens eine Länge von 180 Zeichen, übergeben sind nur ein Bruchteil davon max 20.

Bei der Datenbankverbindung habe ich es bei den Standardeinstellungen belassen, lediglich DatabaseName, Password und Username entsprechend ausgefüllt.

Weiters ist SQLDialekt=3 und CharacterSet = csNone ... so waren die aber schon eingestellt.


Auf dem Rechner, wo die Firebird Datenbank-Datei db.gdb liegt, läuft der Firebird Server mit Version 1.5.

Verwendet wird die gds32.dll

Welcher Zeichensatz bei Erstellung der DB angegeben wurde weiß ich nicht, die DB entstand vor meiner Zeit und war wohl in früheren Zeiten eine Interbase Datenbank.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Mit UIB Komponente Datensatz in FireBird Tabelle einfüge

  Alt 7. Sep 2007, 12:41
Stell mal das CharacterSet auf ISO8859_1.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 18:48 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