Alle Beiträge von streffin
-
Problem beim VB-gesteuertem Einfügen einer Tabelle in Word 2010
Ins blaue geraten, würd ich vorher noch prüfen, ob es nicht am Rechtemanagment liegen könnte. Davon abgesehen, VB 6.0, man könnte fast sagen, es wird a bissl Zeit das mal zu portieren
-
Einträge über Textfelder
was mir auffällt ist, dass du zumindest in dem Code den du gepostet hast, "richtige" SQL Syntax verwendest. Wenn ich nicht ganz Irre, nimmt Access aber " " als String delimiter und nicht das übliche '. Das könntest du mal testen, ob ihm "A" eventuell lieber ist als 'A'. Viel Glück, und ich HASSE Access Sven
-
Wie wichtig ist Englisch?
ICh würd dir auch raten, parallel zu VHS / Langenscheidt Kursen dir Filme / Bücher auf englisch zu besorgen. Gerade was Sprachverständniss angeht, sind Filme sehr gut um sein Englisch zu verbessern. In den Zeiten von mehreren Tonspuren auf 5€ Dvd's sollte das auch ohne mr Rapidshare keine unüberwindbare Hürde sein, wo die legale Variante die Vorteile von anständiger Bild/Ton Qualität, und Untertiteln (die werden am Anfang nicht ganz verkehrt sein) besitzt. Jedenfalls hab ich auf die Art Englisch gelernt, das was ich da 9 Jahre in der Schule hatte ist gegen das was ich privat durch wirkliches Benutzen der Sprache gelernt hab ein schlechter Witz.
-
Berechtigungsprob sysdatenbank
Es gibt keine System Datenbank. Es gibt master, model, msdb und tempdb. Was Rechte angeht, ich nehm an du hast das SQL Server Managment Studio. Rechtsklich auf das Objekt im Kontextmenu auf Permissions. Mit dem Satz kann ich jetzt gar nichts anfangen, ich hab keine Ahnung was du damit sagen willst. Gruß Sven
-
ms sql simple subtraktion in storedproc
Das ist etwas sehr umständlich was du da machst. Set @SystemUserLaenge = (Select LEN(@SystemUser)); Wo du das her hast würd mich dann aber doch intressieren..... set @SystemUserLaenge = LEN(@SystemUser) funktioniert wunderbar. Das ganze was du da oben in 5 Variablen zuweisungen machst mal in kurz : SET @ntname = SUBSTRING( SYSTEM_USER, CHARINDEX('\', SYSTEM_USER) + 1, LEN(SYSTEM_USER) ) Was den 3. Parameter von substring angeht : SUBSTRING (Transact-SQL) Abschnitt length_expression
-
Werte generieren
Bin ich nicht, ich hab nur ********ene Arbeitszeiten, was zu führt dass wie ein Arbeitsloser schlafen geh (so gegen 3uhr früh, da is normal alles was in Lohn und Brot steht schon halb am wieder aufstehn)
-
Werte generieren
Ich bau jetzt keine komplette DB nach, aber das hier sollte zumindest ne ganz brauchbare Vorlage für dich darstellen. DECLARE @monate TABLE(datum datetime, NAME VARCHAR(50)) DECLARE @table TABLE(artikel VARCHAR(50), datum DATETIME, menge INT) DECLARE @i INT = 0 WHILE @i < 12 BEGIN INSERT INTO @monate VALUES ( DATEADD(MONTH, @i, '2010-01-01'), DATENAME(MONTH,DATEADD(MONTH, @i, '2010-01-01')) ) set @i = @i +1 END INSERT INTO @table VALUES ('aepfel', '2010-01-01', 5), ('brinen', '2010-01-01', 3), ('aepfel', '2010-01-01', 2), ('orangen', '2009-01-01',5), ('aepfel', '2010-03-09', 1) DECLARE @jahr INT DECLARE @artikel VARCHAR(50) SET @jahr = 2010 SET @artikel = 'aepfel' SELECT YEAR(mon.datum) [Jahr], mon.[NAME] [Monat], @artikel [Artikel], isnull(sub_query.menge,0) [Anzahl] FROM @monate mon LEFT JOIN ( SELECT SUM(menge) [menge], datum FROM @table WHERE YEAR(datum) = @jahr AND artikel = @artikel GROUP BY artikel, datum ) sub_query ON YEAR(sub_query.datum) = YEAR(mon.datum) AND MONTH (sub_query.datum) = MONTH(mon.datum) Das kannst du dir so anpassen, wie du es dann brauchst. Also über die Artikel ID gehen usw. Nebenbei, das bietet sich eigentlich an daraus eine Stored Procedure zu machen, mit den 2 übergabewerten Jahr und Artikel. Gruß Sven
-
Werte generieren
mehrere Zeilen schreibst du entweder 12 einzelne inserts, oder ne schleife. declare @tbl table (id int, dateval datetime, monthName varchar(50)) declare @i int set @i = 0 while @i < 12 BEGIN insert into @tbl Values ( @i, dateadd(month, @i, '2010-01-01'), datename(month, dateadd(month, @i, '2010-01-01')) ) set @i = @i +1 END Was deine einfache Abfrage angeht, ohne genau zu wissen was du vor hast : select tab.Artikelnummer, temp.monthName, tab.sum(Menge) from @tbl temp LEFT JOIN Table1 tab on MONTH(tab.datum) = MONTH(temp.dateval) where tab.Jahr = '2009' group by tab.Artikelnummer, temp.monthName, MONTH(tab.datum) ORDER BY MONTH(tab.datum)
-
Mehrere Boolean Werte
Wie gesagt, grade wenn du rückgabewerte von funktionen vergleichst macht es einen grossen Unterschied, ob du immer alle Werte berechnest und dann prüfst, selbst wenn der erste wert schon reicht um in die ELSE zu gehen, oder ob du alle vergleichst. Und wenn schon, dann ist doch das "holen" von Werten aus Variablen jeweils eine eigene Anweisung
-
Mac vs. PC = Betrieb vs Berufsschule ?
Solang ich MacOS nichtmal virtualisieren darf laut lizenzvereinbarung bekommt der Laden alles von mir aber kein Geld. Virtualisierung ist ja auch so absolut nutzlos und brauch eh ein softwareentwickler dieser erde ..... Sagt ein Dualboot Linux/Windoofler.
-
Synchronisation SQL Server 2000
Das ganze hat mit .Net nicht viel zu schaffen. Relevant ist hier um was für eine Datenbank es sich handelt. Änderungen am Schema, das kann ich dir aber garantieren, dass wird nicht mit Standart Funktionen machbar sein. Da kommen mer in die höhrere Kunst von SQL, was heist dynamische SQL Querys erstellen. Ich denke du wirst hier auch um dynamisches SQL nicht rum Kommen. Machbar ist das, die alter Table statements kannst du dir bei Bedarf schon erstellen, um die Tabellen in beiden Datenbanken zu synchronisieren. Ich persöhnlich würde sowas NUR im Backend per Stored Procedure implementieren ehrlich gesagt, aber das kannst du auch per .Net reinfeuern im Prinzip. Gerade, dass ich rauslesen kann, dass das ganze nicht auf eine bestimmte Tabelle beschränkt, sonder allgemeingültig funktionieren schreit hier nach einer SP die ausliest wie eine Tabelle aufgebaut ist, nachschaut ob es die Tabelle auf dem anderen Server gibt, wenn nicht, erstellt, wenn ja angleicht. Das Problem das du aber hast, wenn du von bidirektional redest, wenn du eine Spalte löschst in einer Tabelle, dann musst irgendwo hinterlegt haben, was deine Master Tabelle ist. Weil hinzufügen ist einfach, das geht. Aber Unterscheiden Zwischen "Ich habe in Tabelle A eine Spalte hinzugefügt, die es in Tabelle B noch nicht gibt, leg die Spalte in Tabelle B an" und "Ich habe in Tabelle A eine Spalte gelöscht, die es auch in Tabelle B gibt, lösch die Spalte in Tabelle B" Ist nicht machbar. Du kannst in beiden Tabellen die fehlenden Spalten hinzufügen, aber wenn du eine Spalte löschst, dann musst du schon irgendwo sagen, "nein die Spalte fehlt nicht in Tabelle A, ich hab sie gelöscht, lösch die Spalte in Tabelle B auch". Das ist auf jedenfall was komplexres, das sehr gut getestet werden möchte, und wo deine Kollegen eine Dokumentation mit sehr grosser sicherheit nicht ablehnen würden. Ich jedenfalls schreib dir dat für umme ganz bestimmt nicht (bin aber billiger als ein Consultant ) Gruß Sven
-
Mehrere Boolean Werte
Und um eventuell nochmal was intresanntes für einen Anfänger zu posten .... (ja ich weis rtfm, aber ma ehrlich, es is netter wenn man die paar Zeilen schreibt.) AndAlso bedeutet, dass die 2. Auswertung, nur dann gemacht wird, wenn die erste zutreffend ist. IF A=1 AndAlso B=2 THEN ....... Beutet, dass nur wenn A den Wert 1 hat, geprüft wird, ob B den Wert 2 hat. Das ist performance technnisch zum Teil durchaus relevant. Vorallem dann, wenn du Rückgabewerte von Funktionen auf ihren wert prüfst in deiner IF. Btw, wenn mer schon am Haarespalten sind : !(wert1 || wert2 || wert3 || wert4) sollte soweit ich das sehe (nein ich schreib da sowas von kein Benchmark für) AndAlso performantisch weit unterlegen sein. Also wenn ihr schon Haare spaltet, dann doch bitte nicht nur rein Syntaktisch, nehm doch bitte da auch noch a bissl tieferen Sinn mit. Gruß Sven
-
Werte generieren
Hm eventuell hab ich das ganze falsch gelesen ..... Du sagst keine Hilfstabelle..... Hilfstabelle ist für mich eine dauerhaft bestehende Tabelle in der Datenbank. d.h. Wenn ich das jetzt nochmal quer lese, dann kannst au auch eine temp Table erstellen. Temp Tables unter Mssql sind Tabellen, die entweder nur für die aktuelle Session bestehen bleiben, oder "übergeordnete" Temp Tables, die nicht sofort weggeschmissen werden (ein paar minuten sind sie noch da in der Regel) Den Unterschied in code : create table #temp (id int, bla varchar(255)) insert into #temp Values (1, 'bla) create table ##andere_art_temp (id int, bla varchar(255)) etc # = "lokale" temp table, nur für die aktuelle Session ## = "globale" temp table, is ein paar minuten da Die Tabellen kannst du benutzen wie jede andere Table auch. Der Unterschied ist, die #temp ist nach der aktuellen Session in der du sie erstellst weg. Komplett mit inhalt und allem. die ##temp wird für kurze Zeit vorgehalten, was heist, dass du in z.b. SSIS Packages da IDs drin speichern kannst, die dann von anderen Steps im Package benutzt werden können. Aber die ##temp Tabellen sind nach ein paar Minuten auch im Datennirvana. Also wenn dein einziges Problem darin besteht, dass du keine feste dauerhafte Hilfstabelle für die Monate erstellen kannst / darfst (wär au recht ja .... doof), kannste dir auch genausogut ne #temp erstellen, und mit der Tabelle in deinem query umgehen wie mit jeder anderen Tabelle in der Datenbank. Mit der besonderheit, dass du nicht sicher sein kannst, ob die Tabelle eventuell nich besteht, oder nicht mehr. IF object_id('tempdb.dbo.##temp') IS NOT NULL BEGIN DROP TABLE ##temp END Würd ich daher zu Begin des Querys anraten. Ansonsten, die table variablen sind in der Hinsicht sehr unkompliziert, und ich glaub du hasts damit einfacher. Das war jetzt eher der Vollständigkeit halber der Post. Ps : Ich hab recht bescheidenen Arbeitszeiten, ich fang spät an, und komm sehr spät heim, daher verschiebt sich mein Schlafrythmus a bissl ins Arbeitslose Gruß Sven
-
Ausbildung begonnen-keine Anmeldung zur Berufsschule
Mal vom rechtlichen abgesehen : Dein Chef scheint mir von der Sorte zu sein, die dir auch wirklich was beibringen. Berufschule is ... meiner peröhnlichen Erfahrung nach, 1. und 2. Hand, absolut fürn *****, aber im Betrieb kannst du wirlich was lernen wennd n anständigen hast. Ich würd mir an deiner Stelle da über +- 6 Monate Ausbildung keinen grossen Kopf machen. Die Anmeldung inner Berufschule kann afaik auch kein gesteigertes Problem sein, mer hatten Leute bei uns die erst 3 Monate nach "Start" angefangen haben mit der Ausbildung, und dann halt nachträglich in die Klasse kamen. Das sollte normalerweise kein Problem sein. Gruß Sven
-
Fahrtkosten und/oder Firmenwagen für einen Azubi ein "Geldwerter Vorteil"???
Offen gesagt .... Ja ich seh das wie die Vorposter, das is als Ausbildungsbetrieb ein schlechter Scherz. Aber, so wie ich das gelesen habe, willst du nicht ausgebildet werden, sondern nur den Zettel haben wo halt was drauf steht. Dagegen ist in einem Land, wo man einen Zettel braucht um einem wurm am Hacken ins Wasser zu halten einen Schein braucht auch absolut nichts gegen einzuwenden. ABER : Was ich an deiner Stelle von der Firma forden würde, wäre, mindestens das Doppelte von dem was ein normaler Azubi an "Gehalt" bekommt. Dazu dann noch entweder die >schriftliche< Zusage, dass du ein paar Wochen im Jahr freigestellt bist, um dir die schulischen Dinge zu erarbeiten, oder halt extra Urlaub, wie auch immer dehnen das lieber ist. Bezahlt Freigestellt, oder bezahlter Urlaub wohlgemerkt. Wenn die dich als Arbeitssklaven wollen, dann schmeiss dehnen auf den Tisch, dass du unter 1500€ Brutto nichtmal drüber nachdenkst. Wenn se dir das nich geben, dann hast du NUR Nachteile imo. In nem anständigen Betrieb kannst du denke ich auch mit dem Vorwissen das du zu haben scheinst noch was lernen, was dich persöhnlich weiter bringt. In dem Betrieb würd ich das nicht unbedingt annehmen. Wenns dir nur um den Schein geht, dann besteh auf nen 2 Jahres Vertrag, ne Bezsahlung die über eine Aufwandsentschädigung hinausgeht, und Freistellung um die schulische Sachen zu regeln. Und ja, Firmenwagen (mit oder ohne privater Nutzung ist ein Rechenspiel das ich kompetenteren Menschen überlasse) wäre hier für mich auch Pflicht wenn du ständig zu Kunden fahren sollst. Zusammen gefasst : Das was die dir bieten, ist so ********en, da würd ich auch mal wirklich ein paar ordentliche Forderungen auf den Tisch werfen. Ansonsten bist du wo anders so weit besser dran. Das war mein persöhnlicher Eindruck, ich erhebe da keinen Anspruch auf Richtigkeit oder Allgemeingültigkeit. Edit : Falls du dir die Sache antuen solltest, kann ich dich mit 1 2 Berufsschullehrern bekannt machen, die durchaus von der Sorte Mensch sind, dass se dir sagen was für die Prüfung wichtig ist, und dir dabei helfen würden dich darauf vorzubereiten. Idealisten, hier und da findet man sie noch. Gruß Sven
-
SQL bestimmter wert anzeigen
im allerschlimmsten allgemeingültigsten sql könntest du folgendes machen : SELECT top (1) * FROM ( SELECT top (2000) <was auch immer das in dem dialekt heist, das kan aber wirklich jede db> * FROM tabelle WHERE bla = 'blub' ORDER BY X <nach was du halt da so sortierst> desc ) as sub_query order by X asc Is nich schön, aber würd funktioniern Gruß Sven
-
Werte generieren
afaik wirste über eine temp tabelle nicht rum kommen in mssql. Aber, es gibt unter mssql eine alternative zur #temp_table. declare @tbl table (id int, dateval datetime, monthName varchar(50)) declare @i int set @i = 0 while @i < 12 BEGIN insert into @tbl Values ( @i, dateadd(month, @i, '2010-01-01'), datename(month, dateadd(month, @i, '2010-01-01')) ) set @i = @i +1 END Das würd dir die tabelle zum left / right joinen liefern, wofür du keine temporäre tabelle anlegen müsstest. mit den table variablen kannst du arbeiten wie mit jeder anderen tabelle (auch syntaktisch), ich denke das würde sich für dich hier anbieten. Ansonsten ... das einzige was mir als alternative einfallen würde, wäre die tempdb, aber da du keine temporären tabellen anlegen möchtest, fällt das wohl aus. Wobei ich das nicht ganz versteh, 12 rows mit 1-3 columns .... warum kannste das nich einfach in ne temp table schmeissen das ganze ? (btw, die table variablen sind nicht wirklich was anders, werden halt schneller aus dem speicher geschmissen als tabellen in der tempdb) Gruß Sven
-
Benachrichtigung über SQL Abfrage
u're welcome
-
Benachrichtigung über SQL Abfrage
DECLARE @db_name varchar(255) SELECT @db_name = DB_NAME() IF NOT @db_name = `was_du_suchst` BEGIN print(´falsche Datenbank´) END ELSE BEGIN dein query END das sollte dem was du suchst denke ich nahe kommen. Gruss Sven
-
Oracle und SQL - Bestimmter Datensatz anzeigen
Ich bin was oracle angeht jetzt nicht sooo bewandert und kanns hier nicht testen, aber : select * from ( select * from table order by date_column ) where ROWNUM = 2000 Afaik wird in Oracle die ROWNUM vor der ORDER BY Klausel berechnet, was du aber mit dem Subquery loesen kannst dann. Rein prinzipiell muesste das so funktionieren, tests mal Gruss Sven Ps. Bevor mich einer ueber Rechtschreibung flamt, ich sitz hier an ner schwedischen Tastatur, und die ist nicht fuer die deutsche Sprache gemacht
-
[VB 6] SQL-Abfrage Anfangsbuchstabe
bevor du an dem SQL noch verzweifelst ... dim sSql String sSql = "SELECT * FROM kunden WHERE name like '" & buchstabe & "%'" Was bereits angesprochen wurde, wenn du nur ein Zeichen nimmst und dass dann staendig in die DB feuerst, dann geht das boese auf die performance. Sinvoller ware es wenn du noch eine IF drum rum schreibst, und erst aber einer stringlaenge von 2-3 Zeichen die Datenbank bemuehst. Gruss Sven
-
Controls entfernen -> Rückgängig machen
Etwas aufwaendiger, aber vielseitig waere die Moeglichjkeit, die Controls dynamisch aus einer DB auszulesen. Dazu muesstest du die relevanten Daten der Controls, (breite,hoehe,x-pos,y-pos, name, parent usw) als felder einer tabelle anlegen. Der Vorteil davon ist, dass du beim loeschen eines Controls, nicht die row aus der Tabelle werfen musst, sondern du das ueber ein "aktiv-flag" machen kannst. Dadurch kannst du dann beliebig Zustaende wieder herstellen (no nen timestamp wanns geloescht wurde und von wem mit inn die tabelle schreiben) wenn jemand mist gebaut hat. Grus Sven
-
SQL: FELD1 beinhaltet FELD2
Also meine Loesung (die Tastatur hier hat keine Umlaute) waere : SELECT * FROM yourTable yt WHERE instr(yt.field1,yt.field2,1) > 0 Klein, fein, einfach und uebersichtlich Gruss Sven
-
Ideen für DB gesucht
nunja, wie mans nimmt. Unter .NET (unter Java gibts afaik mitlerweile auch ganz brauchbare GUI Designer) ist ein einfaches Fronted auch recht schnell gemacht. Der Nachteil von Access ... es ist Access ... Jedesmal wenn ich in Access Anwendungen was erweitern oder fixen muss bekomm ich Ausschlag. VBA und der etwas "eigene" SQL Dialekt, auf dauer macht das einfach keinen Spass.
-
SQL: FELD1 beinhaltet FELD2
Ich wuerd mir das einfach gestalten,und mir die instr() funktion näher anschaun. BR Sven