Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Schreiben in einem Recordset (https://www.delphipraxis.net/38850-schreiben-einem-recordset.html)

Leominora 25. Jan 2005 08:17


Schreiben in einem Recordset
 
Hallo,

ich soll ein Projekt, welches auf DB2 und Access läuft, auf SQL-Server umstellen.
Lesen alles kein Problem.

Aber wenn ich einen Datensatz ändern will, folgt sofort die Meldung:

Im Projekt blubb.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Feld 'Blablubb' kann nicht verändert werden'.

Was ist denn am SQL-Server anders? :gruebel:
Rechte sind in Ordnung, habe ich überprüft und Lesen geht ja auch.

Hab keine Idee mehr. Vielleicht weiß hier jemand mehr?!

Danke schon mal im voraus

Leo

Bernhard Geyer 25. Jan 2005 08:21

Re: Schreiben in einem Recordset
 
Zitat:

Was ist denn am SQL-Server anders? Grübelnd...
Ich schau mal in meine Glaskugel...

Also ohne ein bisschen Code und der angebe des Zugriffswegs (BDE/ODBC, ADO, Native, ...) können wir nur raten.
Grundsätzlich ist jede SQL-Datenbank etwas anders zu verwenden, trotz solcher Standards wie SQL-92/99/....
Eigentlich solltest Du ja bei DB2 und Access es schon gewohnt sein, das jede Datenbank sich etwas anders verhält.

Leominora 25. Jan 2005 08:31

Re: Schreiben in einem Recordset
 
p_alg.SQLSRV_conn: TSQLConnection;
rs : TSimpleDataSet;

p_alg.SQLSRV_conn := TSQLConnection.Create( self);
p_alg.SQLSRV_conn.Connected := False;
p_alg.SQLSRV_conn.ConnectionName := ''; //'odbctest';
p_alg.SQLSRV_conn.DriverName := 'Dbx Open Odbc Driver';
p_alg.SQLSRV_conn.GetDriverFunc := 'getSQLDriverODBC';
p_alg.SQLSRV_conn.KeepConnection := True;
p_alg.SQLSRV_conn.LibraryName := 'dbxoodbc.dll';
p_alg.SQLSRV_conn.LoadParamsOnConnect := False;
p_alg.SQLSRV_conn.LoginPrompt := false;
p_alg.SQLSRV_conn.Params.Add( 'DriverName=Dbx Open Odbc Driver');
p_alg.SQLSRV_conn.Params.Add( 'Database=Lalelu'); // ????
p_alg.SQLSRV_conn.Params.Add( 'User_Name=Leo');
p_alg.SQLSRV_conn.Params.Add( 'Password=Leo');
p_alg.SQLSRV_conn.Tag := 0;
p_alg.SQLSRV_conn.VendorLib := 'ODBC32.DLL';
p_alg.db_nameb := '';

sql_text := 'SELECT * FROM Blabla';

rs.Connection := p_alg.SQLSRV_conn;
rs.DataSet.CommandText := sql_text;
rs.Active := True;

rs.First;
For i := 0 To rs.RecordCount - 1 do
begin
rs.Edit;
rs.FieldByName( 'blablubb').Value := 'test';
End;

Ich hoffe, ich habe nun alle Zeilen, die für den Aufruf von Belang sind, gefunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 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