Forum

Moderiert von: stefan, spinne
Forum: Bug oder nicht...
Sie schreiben eine Antwort zum Thema: "Ihr Account " -> SQL Error?
Gehe zu: OpenPHPNuke - das Open Source CMS Forum Index


über den Beitrag: Auch anonyme Benutzer können in diesem Forum neue Themen eröffnen und Antworten schreiben.
Benutzername:
Nachrichtensymbol:
                                                                                                                       

more...


HTML : An
BBCode : An
 


Klicken Sie auf die Smilies, um diesen in Ihre Nachricht einzufügen:

Very Happy Very Happy Smile Smile Sad Sad Surprised Surprised
Confused Confused Cool Cool Laughing Laughing Mad Mad
Razz Razz Embaressed Embaressed Crying (very sad) Crying (very sad) Evil or Very Mad Evil or Very Mad
Rolling Eyes Rolling Eyes Wink Wink Another pint of beer Another pint of beer ToolTimes at work ToolTimes at work
I have an idea I have an idea

more... 
Einstellungen:







 
Sicherheits-Code
Sicherheits-Code
Neu laden

Thema im Überblick

Autor
stefan
Wohnort: Münster


Sende eine Private Nachricht an stefan
ICQ
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 19:36

vielen Dank für die Unterstützung auch an dieser Stelle.

Die Änderungen sind entsprechend in die Versionen eingeflossen.


Zitieren Druckerfreundliche Darstellung nach oben
axe

Registriert: 05.11.2006
Beiträge: 58
Sende eine Private Nachricht an axe
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 17:32

stefan schrieb am 09.06.2007 um 16:45:58 Uhr folgendes:

getan

ich meine das die ältern firebird oder die ibase versionen, weiss nicht mehr genau, das nicht konnten.



grad mal nachgeschaut in interbase 6 doku, da ging das schon.
und Interbase < 6 bekommt man nur noch aus dem Museum


Zitieren Druckerfreundliche Darstellung nach oben
axe

Registriert: 05.11.2006
Beiträge: 58
Sende eine Private Nachricht an axe
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 17:24

Werd es mal recherchieren, aber ich denk schon dass auch mit älteren interbase versionen (mit firebird auf jeden fall) folgendes korrekt war / ist


Spalte hinzufügen:

alter table mytable add column dbtype;

Spalte umbenennen:

alter table mytable alter column to newcolum

Spaltentyp ändern:

alter table mytable alter column type newdbtype


bin gerade dabei driver_ibase aufzuräumen / optimieren:

1. AddRepairField, ChangeRepairField, ChangeColumn schmeiss ich raus
2. Neu hinzu kommt ExecuteColumnChange und ExecuteColumnAdd analog zu mysql nur mit angepasster SQL Syntax

dementsprechend wird sich der true/false block nochmal ändern auf

$this->CanAlterColumnAdd = true;
$this->CanAlterColumnChange = false;
$this->CanAddRepairField = false;
$this->CanChangeRepairField = false;
$this->CanExecuteColumnAdd = true;
$this->CanExecuteColumnChange = true;

das komplette driver_ibase.php schick ich dann aber per Email.




Zitieren Druckerfreundliche Darstellung nach oben
stefan
Wohnort: Münster


Sende eine Private Nachricht an stefan
ICQ
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 16:45

getan

Ich weiss nur nicht ob das bei jeder version geht. ich meine das die ältern firebird oder die ibase versionen, weiss nicht mehr genau, das nicht konnten.

daher der umständliche weg, im mysql wird das nicht so kompleziert gemacht


Zitieren Druckerfreundliche Darstellung nach oben
axe

Registriert: 05.11.2006
Beiträge: 58
Sende eine Private Nachricht an axe
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 16:26

bitte driver_ibase.php ändern:

function opn_ibase

von

$this->CanAlterColumnAdd = false;
$this->CanAlterColumnChange = false;
$this->CanAddRepairField = true;
$this->CanChangeRepairField = true;

auf

$this->CanAlterColumnAdd = true;
$this->CanAlterColumnChange = true;
$this->CanAddRepairField = false;
$this->CanChangeRepairField = false;


mit alter table funktioniert das update für die user_guestbook table. AlterColumnChange ist zwar ungetestet, aber sollte auch funktionieren. besser als das löschen und umkopieren ganzer tabellen auf jeden fall.

--------------
Update:

CanChangeRepairField auf true lassen und CanAlterColumnChange auf false.

alter table xyz change abc abc .... funktioniert mit firebird / interbase nicht.

Werde das bei Gelegenheit im driver_ibase anpassen auf andere syntax.


[ Diese Nachricht wurde bearbeitet von: axe am 09.06.2007 16:43 (Originaldatum 09.06.2007 16:26) ]


Zitieren Druckerfreundliche Darstellung nach oben
axe

Registriert: 05.11.2006
Beiträge: 58
Sende eine Private Nachricht an axe
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 16:15

Also das Drop table schlägt fehl. Warum weiss ich nicht. Von Hand lässt sich das Statement ausführen.

Werd da aber auch nicht mehr weitersuchen und stattdessen mal die anderen Varianten probieren um eine neue spalte in die DB anzufügen.

dafür die Tabelle zu kopieren, löschen und wieder zurückzukopieren ist ja schon ein wenig overflow nur um eine neue Spalte hinzuzufügen. gibts echt Datenbanken die kein ALTER TABLE ADD ... kennen / können??


Zitieren Druckerfreundliche Darstellung nach oben
axe

Registriert: 05.11.2006
Beiträge: 58
Sende eine Private Nachricht an axe
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 14:04

sorry, muss mich erstmal korrigieren, das AddRepair wird doch korrekt aufgerufen, war ein fehler von mir in meiner Debug-Ausgabe :/ aber jetzt kann ich zumindest weiter schauen wo es dann letzlich hängt...

werd wieder posten wenn ich mehr weiss...


Zitieren Druckerfreundliche Darstellung nach oben
stefan
Wohnort: Münster


Sende eine Private Nachricht an stefan
ICQ
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 14:02

aha geht die routine überhaupt?

diagnostic
-> Datenbanken überprüfen

sollte dir dann einen "Repair" Vorschlag machen

!bitte nicht! im

OPN in den repariere Profi Modus versetzen

ausführen (in den Einstellungen zufinden)

sonst würde er sofort Versuchen das zu korrigieren und nicht mal ne Meldung geben


Zitieren Druckerfreundliche Darstellung nach oben
axe

Registriert: 05.11.2006
Beiträge: 58
Sende eine Private Nachricht an axe
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 13:36

Hi,

hab ich mal gemacht, läuft ohne Fehler durch, aber die beiden Felder wurden nicht hinzugefügt.

Grund:

in class.opn_vcs.php wird

if ($opnConfig['opnSQL']->CanAddRepairField) {
$code = '$opnConfig['opnSQL']->AddRepairField ('' . func_get_arg (1) . '', '' . func_get_arg (2) . '', '' . func_get_arg (3) . '');';
}

ausgeführt, dass sollt normalerweise AddRepairField im entsprechenden SQL driver aufrufen. Passiert aber nicht in driver_ibase. die function AddRepairField in driver_ibase.php wird überhaupt nicht aufgerufen.

was stattdessen aufgerufen wird - keine Ahnung, konnte ich bislang nicht finden


Zitieren Druckerfreundliche Darstellung nach oben
stefan
Wohnort: Münster


Sende eine Private Nachricht an stefan
ICQ
"Ihr Account " -> SQL Error?

Geschrieben: 09.06.2007 11:28

Da du nicht mysql/sqlite nutzt; könnten wir mal testen ob evt. die update routine da ne macke hat.

versetz mal user_guestbook in die DB Version 1.4 (da sind die felder noch nicht enthalten)

Um das zu tun must du in der DB

Tabelle deinpräfix_opn_opnvcs

die Zeile vcs_progpluginname mit dem wert system/user_guestbook suchen und dort das

vcs_dbversion da steht ein 1.5 drin ändern in ein 1.4

dann sollte danach bei
admin
-> modulinfos
-> klick auf system/user_guestbook

DB Version 1.5 (Installierte DB Version: 1.4)

stehen. Jetzt meint opn das du eine DB Version von 1.4 für das modul hast (hast du ja auch)

du solltest jetzt dort auch ein update schalter haben (war vorher was anderes) oder eben autoupdate laufen lassen auch dort sollte dann er versuchen das modul upzudaten. wenn es da probleme gibt sollten ja sql errors kommen oder eben hinterher die tabelle stimmen

versuch mal falls unklar -> nachfragen


Zitieren Druckerfreundliche Darstellung nach oben
2 Seiten ( 1 - 2 )