![]() |
Re: Datenmanipulation (ODBC/Access)
Zitat:
Die Access Datenbank läuft lokal sehr gut aber im Netzwerk gibt es grosse Schwierigkeiten. Du kannst aber auf die MSDE 2000 bzw. jetzt heisst es MS SQL Server Express ausweichen. Das ist im Prinzip ein SQL Server mit ein paar Einschränkungen, die aber bei deiner kleinen Datenbank nicht stören. Es ist auch nicht schwer, die Anwendung so zu schreiben, dass sie sowohl auf Access als auch auf dem SQL Server läuft. |
Re: Datenmanipulation (ODBC/Access)
Eine Benutzer DSN kann ja für mehrere DB erstellt werde. gehe dann auch mal davon aus, das ich per ODBC auch mit diesen DBs kommunizieren kann. Trotzdem finde ich nirgends einen Ansatz, wie das Manipulieren von Daten funktionieren soll. Abfragen kalppen einwandrei. Manipulationen nicht. HILFE :)
Grüße |
Re: Datenmanipulation (ODBC/Access)
Zitat:
|
Re: Datenmanipulation (ODBC/Access)
Liste der Anhänge anzeigen (Anzahl: 1)
@LuCSteR:
Also ich versuche noch mal in Kurzform die Vorgehensweise zu skizzieren: Mit FreePascal eine Haupform erstellen. Mit FreePascal eine Dataform erstellen. Anschließend erstellst Du in der Dataform jene Komponenten, mit denen Du in der jetzigen Anwendung die Verbindung zur DB erstellst. Nun schau Dir mal meine Abbildung an. Hier kannst Du sehen in welchem Zusammenhang die verschiedenen DB-Komponenten stehen. Um Abfragen oder Tabellen bearbeiten zu können, ist noch eine Komponente nötig, eine so genannte Datasource. Jede visuell zu bearbeitende Tabelle oder Abfrage sollte erst einmal eine eigene Datasource haben. Diese Komponenten sollten natürlich treffend benannt werden um Dir später das Arbeiten zu erleichtern. Jede dieser Datasource-Komponenten kannst Du nun mit kannst Du nun mit beliebigen Komponenten zur Datensteuerung versehen, z.B dem DBNavigator oder einer Edit-Komponente. Zu den von Dir benannten Transaktionen. Beim öffnen einer Datenverbindung wird bei den meisten DB-Anwendungen eine Transaktion eröffnet. Beim schließen der Anwendung bzw. der Datenverbindung wird sie automatisch geschlossen |
Re: Datenmanipulation (ODBC/Access)
Zitat:
|
Re: Datenmanipulation (ODBC/Access)
Ich schreibe ja gerade ersteinmal ein kleines Rum-Probeir-Programm, wo ich alles austeste. Folglich ist mir die Struktur mit 2 Forms ersteinmal egal.
Ich habe nach der Kompo Database gesucht, aber ich benutze Lazarus, und finde sie deshalb scheinbar nicht. Vll. nochmal zum Stand der Dinge :) - ODBCConnection1 - SQLTransaction1 - Datasource1 - SQLQuery1 Mit diesen 4 Komponenten habe ich es geschafft eine verbindung aufzubauen, mehrere Abfragen zu senden und mir deren Ergebnisse in einer DBGrid1 anzeigen zu lassen. Funktioniert so:
Delphi-Quellcode:
Prima. Zum Manipulieren habe ich bisher nichts unternommen, da ich nicht einmal einen Ansatz sehe, wie das funktionieren soll. Die Queries sind ja nur Abfragen. Aber womit muss ich denn operieren um manipulieren zu können? Bzw. direkt besser gefragt: Wie funktioniert es? Bsp.? Nur ein ganz kurzes vll :)
{onFormCreate}
ODBCConnection1.DatabaseName:='test1'; //Benutzer DSN Name ODBCConnection1.Connected:=true; SQLQuery1.UsePrimaryKeyAsKey:=false; SQLQuery1.Active:=true; //erster String wird direkt ausgeführt {onButtonClick} SQLQuery1.Active:=false; SQLQuery1.SQL.Clear; SQLQuery1.SQL.Add('SELECT Bezeichnung FROM Entgeltdatei_SIA'); SQLQuery1.Active:=true; {onFormClose} ODBCConnection1.Connected:=false; grüße |
Re: Datenmanipulation (ODBC/Access)
Hallo Lucster,
wie wäre es mit
SQL-Code:
dann wird in allen Sätzen die Bratzelzeichnung durch Bretzelzeichnung ersetzt.
'Update Entgeltdatei_SIA Set Bezeichnung='Bretzelzeichnung' where Bezeichnung='Bratzelzeichnung';
gruß K-H |
Re: Datenmanipulation (ODBC/Access)
lustig :)
als hätte ich sowas nich schon selbst ausprobiert ;) Immer die gleichen Fehler: EDataBaseError in Lib "db"... btw lautet das richtige SQL Statement in Delphi umgesetzt:
Delphi-Quellcode:
Habe gerade was von ExecSQL gelesen. Vll werde ich dadurch fündig. Trotzdem danke :)
SQLQuery1.SQL.Add('Update Entgeltdatei_SIA Set Bezeichnung='+QuotedStr('TEST')+' Where Bezeichnung='+QuotedStr('Unfrei'));
|
Re: Datenmanipulation (ODBC/Access)
Delphi-Quellcode:
--> EListError ... mit
SQLQuery1.SQL.Add('Update Entgeltdatei_SIA Set Bezeichnung='+QuotedStr('TEST')+' Where Bezeichnung='+QuotedStr('Unfrei'));
SQLQuery1.Params[0].DataType:=ftString; SQLQuery1.ExecSQL;
Delphi-Quellcode:
hinten dran auch...
SQLQuery1.Active:=true;
Kann es sein das die Verbidnungen zwischen den Komponenten nicht passen? Eigenschaft von ODBCConnection1.Transaction auf die SQLTransaction1 setzen, Eigenschaft von SQLQuery1.Database auf ODBCConnection1 setzen, Eigenschaft von Datasource1.Dataset auf SQLQuery1 setzen, Eigenschaft von DBGrid1.Datasource auf Datasource1 setzen, |
Re: Datenmanipulation (ODBC/Access)
Hallo LuCSteR,
wie heißt die Fehlermeldung denn genau? Etwa: "cannot load libodbc.so"??? Bedenke bitte das Du Dich hier in einem DELPHI-Forum befindest und nicht in einem LAZARUS-Forum. So wie es aussieht, wird Access und damit die MS-JET-Engine gar nicht unterstützt, sondern nur folgende Datenbanken: Zitat:
![]() Dort im Forum ist bei Access u.a. folgendes zu lesen: "...Geht perfekt wenn ich mit ZeosDB oder auch direkt mit SQLDb-Komponenten drauf zugreife, aber mit ODBC nix zu wollen." Weiß nicht so richtig ob Du hier an der richtigen Stelle nachfragst - Kann mich aber auch täuschen. Hast mich richtig verunsichert. Nachtrag: Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz