AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

BDE und Params

Ein Thema von AThurm · begonnen am 8. Jul 2010 · letzter Beitrag vom 8. Jul 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von AThurm
AThurm

Registriert seit: 27. Aug 2009
30 Beiträge
 
Delphi 2010 Enterprise
 
#1

BDE und Params

  Alt 8. Jul 2010, 12:09
Datenbank: MSSQL • Version: 5.111 • Zugriff über: BDE
Hallo,
bevor jetzt die ganzen Aussagen kommen das die BDE böse und veraltet ist: Ich habe keine andere Wahl in meiner Firma.
Nun ist es so dass ich folgendes in Delphi 2010 versuche und er mir in der Datenbank-Tabelle aus der hifanr ein 0 anstatt ein NULL macht.
Ändere ich die markierte Stelle auf .AsAnsiString, schreibt er mir die richtigen Daten in die Datenbank (Wert mit NULL).

Ist dies ein Fehler? oder liegt es einfach daran das die BDE kein Unicode unterstützt und er mir die Params im Speicher versaut?

Delphi-Quellcode:
Query1.SQL.Text := 'insert into test ' +
                    '(lnr, hifanr, region) values ' +
                    '(:lnr, :hifanr, :region)';

  Query1.ParamByName('lnr').Name := 'lnr';
  Query1.ParamByName('lnr').DataType := ftInteger;
  Query1.ParamByName('lnr').Value := 999;

  Query1.ParamByName('hifanr').Name := 'hifanr';
  Query1.ParamByName('hifanr').DataType := ftInteger;
  Query1.ParamByName('hifanr').Clear;
  Query1.ParamByName('hifanr').Bound := true;

  Query1.ParamByName('region').DataType := ftString;
  Query1.ParamByName('region').Name := 'region';
  Query1.ParamByName('region').AsString := ''; //.AsAnsiString := '';

  Query1.ExecSQL;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: BDE und Params

  Alt 8. Jul 2010, 12:14
Ja die BDE kennt kein Unicode. Aber das mit 0 und NULL ist ein anderes Problem. Kannst du das irgendwo konfigurieren?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von AThurm
AThurm

Registriert seit: 27. Aug 2009
30 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: BDE und Params

  Alt 8. Jul 2010, 12:44
Der Test bezieht sich auf die gleichen Alias Einstellungen, daher glaube ich nicht das ein Konfigurationsproblem ist.
Ansonsten konnte ich mal etwas von LANGDRIVER = ascii lesen, allerdings hilft das bei diesem Problem auch nicht weiter.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: BDE und Params

  Alt 8. Jul 2010, 12:45
Nein irgendwo wird ja das 0 als NULL interpretiert
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von AThurm
AThurm

Registriert seit: 27. Aug 2009
30 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: BDE und Params

  Alt 8. Jul 2010, 12:47
Ich verstehe nicht worauf du hinaus willst ? DAS ist das ganze Programm, auf dem Forumlar liegt nur der TQuery und der Button.
Ich vermute einfach das die DBTables.pas (BDE) nicht mit dem Unicode string umgehen kann ?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: BDE und Params

  Alt 8. Jul 2010, 12:49
Für Integer gibt es keinen Unicode.
Das Problem ist mir voin anderen Zugriffskomponenten bekannt, bei denen man Einstellen kann wie 0 interptiert wird
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#7

AW: BDE und Params

  Alt 8. Jul 2010, 12:59
Hallo,
Delphi-Quellcode:
Query1.SQL.Text := 'insert into test ' +
                    '(lnr, hifanr, region) values ' +
                    '(:lnr, :hifanr, :region)';

  Query1.ParamByName('lnr').Name := 'lnr';
  Query1.ParamByName('lnr').DataType := ftInteger;
  Query1.ParamByName('lnr').Value := 999;

  Query1.ParamByName('hifanr').Name := 'hifanr';
  Query1.ParamByName('hifanr').DataType := ftInteger;
  Query1.ParamByName('hifanr').Clear;
  Query1.ParamByName('hifanr').Bound := true;

  Query1.ParamByName('region').DataType := ftString;
  Query1.ParamByName('region').Name := 'region';
  Query1.ParamByName('region').AsString := ''; //.AsAnsiString := '';

  Query1.ExecSQL;
versuch es mal so....

Delphi-Quellcode:
Query1.SQL.Text := 'insert into test ' +
                    '(lnr, region) values ' +
                    '(:lnr, :region)';

  Query1.ParamByName('lnr').AsInteger = 999;
  //Query1.ParamByName('hifanr').AsInteger = 999;
  Query1.ParamByName('region').AsString := '';
  Query1.ExecSQL;
oder so..

Delphi-Quellcode:
Query1.SQL.Text := 'insert into test ' +
                    '(lnr, hifanr, region) values ' +
                    '(:lnr, NULL, :region)';

  Query1.ParamByName('lnr').AsInteger = 999;
  Query1.ParamByName('region').AsString := '';
  Query1.ExecSQL;
zur not kannst du den SQL-Text mit StringRepalce :hifanr auf NULL setzen...
  Mit Zitat antworten Zitat
Benutzerbild von AThurm
AThurm

Registriert seit: 27. Aug 2009
30 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: BDE und Params

  Alt 8. Jul 2010, 13:08
Danke, beides funktioniert, allerdings hast du damit ja bewusst meinen Parameter gekillt.
Bei uns im Programm gibt es davon aber leider 100 derartige Konstellationen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: BDE und Params

  Alt 8. Jul 2010, 13:29
Hallo,
bevor jetzt die ganzen Aussagen kommen das die BDE böse und veraltet ist: Ich habe keine andere Wahl in meiner Firma.
Trotzdem eine Rückfrage: Wieso hast du keine Wahl? Die BDE lässt sich nur mit Tricks unter 64-Bit installieren, Die BDE kann keine neuen Datentypen die der MS-SQL Server seit der letzten 13 Jahren eingeführt hat.

Im Gegensatz hast du mit der ADO-Schnittstelle (was ja mit dbGo verwendet wird) einen Zugriffsweg der seit W2K keine installation benötigt. Du kannst deine Exe also einfach auf dem Ziel-PC kopieren und der DB-Zugriff (wenn der Server erreichbar ist) funktioniert.

Ach ja: Sind deine String-Felder eigentlich vom Typ (var)char oder n(var)char?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von AThurm
AThurm

Registriert seit: 27. Aug 2009
30 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: BDE und Params

  Alt 8. Jul 2010, 13:44
Zitat:
Ach ja: Sind deine String-Felder eigentlich vom Typ (var)char oder n(var)char?
vom typ varchar wieso?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:42 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