![](https://www.fachinformatiker.de/uploads/set_resources_14/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
bigpoint
-
Gesamte Inhalte
1.243 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von bigpoint
-
-
Kann ich eigentlich SQL Debugen ??
Vieleich mit Microsoft Visual Studio ??
-
Original geschrieben von Panther
Was ich aber nicht verstehe :
du setzt in der Schleife @x = @x/100 und liest dann nen Wert aus dem Cursor in die Variable @x ein ohne sie vorher zu verarbeiten, oder hast du was vom Code aus der Schleife rausgenommen ?
Den Schreibfehler in der If Exists Bedingung hast du nur hier beim posten gemacht , oder ?
Entweder verstehe ich das ganze was Du machst oder es läuft nicht richtig denn wenn ich so versuche zu machen kriege ich nichts gefunden dh. er sollte nicht nur einmal zwei stelle abschneiden sondern solange bis was gefunden oder bis null
declare x_cursor cursor for select x from Tabelle1
where ...
open x_cursor;
fetch x_cursor into @x;
print 'fetch_status von x_cursor :'
print @@fetch_status –@@fetch_status ist 0
while @@fetch_status = 0
begin
print'@x vor' –hier kriege ich den orginal Wert
print @x
if exists (select was from Tabelle2 where x=@x) – ist hier was falsch ?
begin
print'x'
print @x – hier kommt er nie ;(
end
fetch next from x_cursor into @x
set @x =@x/100
print'x nach'
print @x -- hier schneidet er zwei stellen ab aber geht nicht wieder hoch
end
close x_cursor
deallocate x_cursor
[/PHP] -
Original geschrieben von g_nikolai
Du kannst auch eine quasi Set anweisung benutzten um die Werte aus der DB oder Select in eine Variable zu sichern.
Bsp:
Declare @Ergebnis int
select @Ergebnis=1+1
sollte auch funktionieren. zumindest tut es das bei mir in edlichen Stored Procedures.
Guido
ja, wenn es 'select 1.5*10' nicht in varchar gespeichert wehre
-
Original geschrieben von Panther
Hi,
wo kommt der erste Wert für @x her ? Du settzt am anfang der Bedingung @x = @x/100
hast aber X noch keinem Wert zugewiesen., oder fehlt da noch ein Teil des Codes ?
Hi , ja richtig es fehlt noch teil von Cod, der wert @x ist gesetz allerdings läft es nur eimal durch ;(
Habe mir gedacht LOOP zu benutzen aber irgend wie klapt es nicht ;(
-
Schon wieder ein prob
Ich habe in eine Tabelle1 eine SpalteS und dort steht ein Zahl zB 35011004 in eine andere Tabelle2 ist auch eine SpalteS wo steht auch ein Zahl Jetzt muß ich solange in der Tabele2 SpalteS einen Satz suchen bis gefunden.
Die regeln sind so: wenn in der Tabele2 SpalteS die Zahl 35011004 nicht gefunden ist zahl um zwie von rechts kürzen und weiter suchen so habe ich es versucht funk aber leider noch nicht richtig ;(
declare x_cursor cursor for select x from Tabele1
where .....
open x_cursor
fetch next from x_cursor
into @ SpalteS
while @@fetch_status = 0
begin
set @x =@x/100
fetch next from x_cursor into @x
if exists (select bed from Tabele2 where SpaleS=@SpalteS)
begin
......
end
fetch next from x_cursor into @ SpalteS
end
close x_cursor
deallocate x_cursor
[/PHP] -
Original geschrieben von Diablo999
Probiers mal ohne den ;
Weiß nicht obs das ist, aber probieren geht über studieren...
EXEC ('IF (' + @bedasud + ' ) BEGIN select 1 END ')
Ansonsten kann ich mir nur vorstellen das in der Bedingung was
falsches drin steht was kein TRUE oder FALSE zurückliefert.
Diablo999
Vielen Dank für Antwort
Also im Bedingung steht 20<10 ich probiere aber gleich ohne ;
-
noch was :
Ich habe ein Bedingung im varchar z.B. 20<40 dann schicke ich es am exec etwa so
EXEC ('IF (' + @bedasud + ' ) BEGIN select 1; END ')
Und dann prüfe mit
if @@rowcount = 1
ob es wahr oder falsch war es funktioniert auch wunderbar wenn es war ist aber sobald es falsch ist kriege ich Syntaxfehler, wie kann man es lösen ????
-
Original geschrieben von Diablo999
Geht glaub ich nicht, aber du kannst das Ergbnis in einer Tabelle auffangen...
create table #tmp ( n int ) insert into #tmp exec('select 1+1') select * from #tmp
Weiß nicht ob dir das was bringt...
Diablo999
ja das ist eine Lösung Danke
-
Original geschrieben von Panther
und nur SELECT XXXX funktioniert doch nciht, musst doch noch die Tabelle mit nem FROM angeben.
logisch geht es
-
Ich schreibe exec ('select 1.5*10')
Wie kann ich den Wert in ein variable zB int abfangen ????
Ich benutze SQL Server 2000
-
Original geschrieben von HolzOnkel
....mal ne blöde Frage zwischen rein...
Welche Felder werden denn im Varchar-Feld eingelagert als Bedingung? Nur Abfragen auf das Feld "EK" oder auch auf andere Felder?
Gruss,
der Onkel
Ich weis ja nicht wo zu Du es brauchst aber ja auch andere, willst Du auch wiesen welche ????
-
gibt's überhaupt eine funktion im SQL Server wo ich von varchar zahl abfragen
zB 'EK+10' und als rezultat kriege ich einen int mit 10 ???
-
SQL Server 2000
ja und Danke Beagol+Sollum
-
Original geschrieben von gurkenpapst
Z.B. so:
select * from bubu where haha like '%\%%';
Das heisset, du musst das %-Zeichen, das du suchst, mit einem backslash escapen.
Kriege zwar keinen Fehler aber auch kein Resultat obwohl es steht 100% was im Feld mit % zB EK+10%
-
Wie kann ich Wörter mit % die im einem varchar gespeicher sind raus fischen ??
ZB im Feld steht PREIS+20%
Mit like ‘‘%‘‘ geht es leider nicht ;(
-
also soOriginal geschrieben von Diablo999Microsoft SQL Server???
Wenn ja, ist es glaub ich nicht möglich ne Bedingung in nem VARCHAR zu verpacken
um ihn dann in ner Verzweigung auszuwerten. Aber es müsste so gehen, jedenfalls
im SQL-Server.
Des mit dem ersetzen des Wertes lass ich mal weg...
SELECT @Bedingung = '143 < 120' EXEC (" IF (" + @Bedingung + ") BEGIN SELECT @Super END ")
Hoffe ich erzähle jetzt was richtiges... Diablo999SELECT @Bedingung = '143 < 120' EXEC (" IF (" + @Bedingung + ") BEGIN SELECT @Super END ")
kriege ich fehler:
Falsche Syntax in der Nähe des IF-Schlüsselwortes.
Wenn ja, ist es glaub ich nicht möglich ne Bedingung in nem VARCHAR zu verpackengibt's da wirklich nicht schon eine funktion ? Vielleich irgend wo im Netz
-
Auch wenn ich versuche so zu machen :
set @char = substring(@bedasud,4,9);
set @int = cast (@char as int);
Kriege Fehler falsche Syntax ......
Obwohl in @char steht nur 127,64
-
Hallo,
habe folgenden Problem, in eine Spalte ‚Bedingung‘ ist Bedingung als varchar gespeichert z.B. EK>120
Ich brauche dieses Bedingung in einem IF Block abzufragen, den wert von EK habe ich in einem int @bedasud
Ich habe mir gedacht dass man es so machen kann :
select REPLACE(@bedasud,'EK',@EK);
if(@bedasud)
kriege aber fehler denn im @bedasud steht eindeutig EK>120 aber wenn ich den wert mi print @bedasud ausgebe steht richtig also 123(@EK)>120
Am besten wäre wenn ich eifach nur die Zahl 120 als int irgend wie kriegen konnte.
Kann mir jemand Helfen ???
-
Hallo,
ich benutze MSFlexGrid und will den CtoolTipCtrl in Verbindung mit MSFlexGrid setzen dh. wenn ich mit der Maus drauf gehe soll das angezeigt werden wo sich grade die Maus befindet also in Spalt 1 Spalte 1 usw.
Den MSFlexGrid fühle ich in eine for schleife wie komme ich aber an die einzelne werte wenn ich mit die Maus drauf gehe ???
-
-
Original geschrieben von Beagol+Sollum
Dann bleibt Dir nur vor dem Insert ein
SET XACT_ABORT=ON
zu setzen
oder?
Wies ich nicht vielleicht gibt es im Enterprise Manager irgendwelche Einstellung Möglichkeiten ?
-
Kann ich in MSFlexGrid mehrfach Selektion machen d.h. z.B. Feld 1,5,9,18 so ähnlich wie im Excel
-
Original geschrieben von Beagol+Sollum
meines Wissens ist das Default auf ON
Also ich benutze sichten und wenn ich ein insert ausführe ohne SET XACT_ABORT
Auf ON zu setzen meckert der Query Analyzer das ich SET XACT_ABORT auf OFF gesetzt habe und deswegen kann auch keinen insert ausführen. Da ich insert nur durch die Schichten mache habe mir gedacht es wehre besser wenn ich es irgend wie automatisch setzen konnte
-
Wie kann ich SET XACT_ABORT automatisch in SQL Server auf ON setzen ???
SQL Debugen
in Datenbanken
Geschrieben
Was verstehst Du unter ???
Muss man irgend welche speziale Rechte dazu besitzen ???
Denn wen ich versuche das zu machen kriege ich solchen Fehler:
[Microsoft][ODBC SQL Server Driver]Ungültiger Zeichenwert für Konvertierungsangabe.