AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zugriffsfehler mit TBlobStream
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsfehler mit TBlobStream

Ein Thema von mjenke · begonnen am 1. Feb 2007 · letzter Beitrag vom 6. Feb 2007
Antwort Antwort
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Zugriffsfehler mit TBlobStream

  Alt 1. Feb 2007, 11:03
Datenbank: MySQL • Version: 3.23.55 • Zugriff über: BDE, ODBC
Hallo, alle miteinander!


Ich habe ein Zugriffsproblem bei dem Versuch in eine MySQL-Datenbank per BlobStream zu schreiben. Und zwar passiert folgendes:

Beim Start der Anwendung wird ein TDatabase-Objekt initialisiert, das eine Verbindung zu einer MySQL-DB auf einem Server aufbaut. Die Verbindung steht. Ich kann lesend und schreibend auf die Daten zugreifen.

Es gibt in der Datenbank allerdings ein BLOB, in das ich schreiben muss (lesen ist kein Problem). Das Schreiben passiert in folgender Prozedur:

Delphi-Quellcode:
procedure TMySQL.UpdateNormenkette(ID: Integer; NormenKette: String);
var
  BS: TBlobStream;
  NK: PChar;
begin

  with FQuery do begin
    RequestLive := True;
    SQL.Clear;
    SQL.Add ( 'SELECT * FROM entscheidungen WHERE ID = ' + IntToStr ( ID ) );
    Open;
    if RowsAffected > 0 then begin
      First;
      if CanModify then begin
        Edit;
        BS := TBlobStream.Create ( TBlobField ( FieldByName ( 'normenkette' ) ), bmWrite );
        try
          NK := PChar ( NormenKette );
          BS.Write ( NK, Length ( NormenKette ) + 1 );
        finally
          BS.Free;
        end;
        Post;
      end;
    end;
    Close;
    RequestLive := False;
  end;
Der Fehler tritt auf, in dem Augenblick, in dem das "Post" abgesetzt wird. Hier bekomme ich die Fehlermeldung, dass der Access für Benutzer "@meinRechner" denied ist. Erstaunlicherweise ist hier offensichtlich kein Benutzer bekannt... sonst würde ja die Meldung "benutzer@meinRechner" erscheinen...

Spaßeshalber habe ich mal folgenden Code geschrieben:

Delphi-Quellcode:
procedure TMySQL.UpdateNormenkette(ID: Integer; NormenKette: String);
var
  BS: TBlobStream;
  NK: PChar;
begin

  with FQuery do begin
    RequestLive := True;
    SQL.Clear;
    SQL.Add ( 'SELECT * FROM entscheidungen WHERE ID = ' + IntToStr ( ID ) );
    Open;
    if RowsAffected > 0 then begin
      First;
      if CanModify then begin
        Edit;
        FieldByName ( 'id' ).AsInteger := ID;
        Post;
      end;
    end;
    Close;
    RequestLive := False;
  end;
Dieser schreibende Zugriff funktioniert... Ich habe also ein Problem mit dem BlobStream...

Hat jemand ein ähnliches Problem gehabt und gelöst?


Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#2

Re: Zugriffsfehler mit TBlobStream

  Alt 1. Feb 2007, 17:12
Hallo!

Die Ursache des Problems kenne ich nun nicht, aber probiere es doch dann mal so.

Cu,
Udontknow
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#3

Re: Zugriffsfehler mit TBlobStream

  Alt 6. Feb 2007, 12:10
Das Problem war viel einfacher...

Warum auch immer der zweite Code-Schnipsel funktioniert hat, kann ich nicht sagen (in dem Augenblick hat er tatsächlich funktioniert). Das Problem lag aber in einem fehlerhaften Auslesen der Registry. Dort habe ich die ODBC-Einträge ausgelesen, aber den User nicht korrekt abgegriffen.

Nachdem ich das korrigiert hatte, gelingt jetzt auch der Zugriff auf die DB genau so wie er soll...


Matthias
Matthias Jenke
  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 04:43 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