Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von ChrisProg
Thema: Haupt-Form wird in Win7-Design dargestellt, alle anderen Masken aber im Win10-Design
Am im Forum: GUI: Windows-Forms

@p!lle: ja, ich nutze Win10 ...

@inflames2k: nein ist es natürlich nicht, aber ein einheitliches Erscheinungsbild wäre natürlich schöner ...


MfG ChrisProg

Thema: Haupt-Form wird in Win7-Design dargestellt, alle anderen Masken aber im Win10-Design
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

Ich habe da mal eine Verständnisfrage:

wie steuert MS das Design der Forms ?

Ich habe ein Projekt, bei denen die Haupt-Forms (MDI-Clients) alle im Win7 Design dargestellt werden; alle anderen Masken aber im Win10 Design (auch die Messagebox) und das obwohl bei beiden Forms nichts an den Standardeinstellungen bezüglich FormBorderStyle geändert wurde

MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

So,

der Tip mit der regasm.exe hat funktioniert - anschließend konnte ich die COM.dll benutzen.

Warum das vorher nicht ging, trotz vorhandener Registry-Einträge wird wohl MS Geheimnis bleiben

Danke an alle für die Inputs


MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

OK, wieder was dazugelernt ...

Ich bin dann wohl einer Fehlinfo seitens MS erlegen: -->Regasm.exe

Dort steht:

Zum Ausführen des Tools verwenden Sie die Developer-Eingabeaufforderung (oder die Visual Studio-Eingabeaufforderung in Windows 7). Weitere Informationen finden Sie unter Developer-Eingabeaufforderung für Visual Studio..

Und das gibt es doch nur mit dem SDK, oder ?

Danke - bis hierher erst einmal ...

MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

Zitat von ThomasE.
Wie soll man daraus schlau werden?

Also, wenn ich nicht total daneben liege, dann gibt es zu Ausführen der .NET-Programme die "normalen" Runtimes - das .NET-Framework.

Aber um Programme entwickeln zu können brauche ich das .Net-Framework SoftwareDeveloperKit und das enthält die regasm.exe, oder etwa nicht ?

Korrigiert mich bitte, wenn ich damit falsch liege ...


MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

Ich habe nicht gesagt "ohne", die "normalen" Runtimes werden schon benötigt..

Zur Info: das ist nur eine Hilfs-dll, um eine E-Mail aus VFP heraus per Outlook zu versenden (leider gibt es diesbezüglich einen Bug in VFP --> der Absender kann nicht gewählt werden, u. genau diese Funktion brauche ich )

Das ich die regasm.exe einfach so kopieren kann, wusste ich nicht (werde ich umgehend ausprobieren) ...


MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

Um das tun zu können müsste ich doch das .Net-Famework SDK auf den Kundenrechner installieren - und das kommt leider nicht in Frage ...


MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

Hallo hypersurf,

Ja, ich meine einen Remotedesktop-Benutzer.

Leider gibt es keinen Stack-Trace, da ich die DLL mit VisualFoxPro aufrufe --> CreateObject(COMServer.Class")

oSendOutlMail = CreateObject("VFPsendmail.SendOutlookMail")
und direkt hier erhalte ich die Fehlermeldung "OLE-Fehlercode 0x80040154" die Klasse ist nicht registriert ...

Wie gesagt, es muss etwas mit den Remotedesktop-Clients zu tun haben (damit kenne ich mich nicht so gut aus, u. ich glaube leider der Systembetreuer des Kunden auch nicht ...) - auf einer lokalen Maschine mit direktem Programmaufruf funktioniert alles genau so wie es soll !


MfG ChrisProg

Thema: COM-DLL im Terminal-Client
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich habe ein C#-COM-Dll geschrieben (inkl. einer REG-Datei).

Auf einer lokalen Maschine funktioniert das ganze Wunderbar...

Bei einem Kunden, der nur mit Terminal-Clients arbeitet, wurde die DLL mit Hilfe der reg-Datei über eine Service-Rolle durch den zuständigen Systembetreuer eingespielt (ich kann die Einträge unter HKLM sehen...)
- trotzdem sagt unsere Software ständig "

Fehler
OLE-Fehler - die Klasse ist nicht registriert
"

Die einzelnen User sind keine Admin´s (aber auch das angebliche Setzen der Admin-Rechte eines Users brachte keine Veränderung).

Was muss auf einem Terminal-Client gemacht werden, bzw. wie muss der User Rechte-mäßig eingestellt werden, damit eine Registrierung/Zugriff erfolgreich ist ???


MfG ChrisProg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

Zitat von Abt
Es ist aber Tatsache, dass alte SQL Server Versionen wirklich nur Stored Procs und dessen Execution Plan cachen konnten.
Neue SQL Server Versionen können jede Art von Statement (adhoc / sproc) cachen und diese einfach parametrisieren.
Der Performance-Vorteil von Stored Procs gibt es so gar nicht mehr.
Zitat von Palin
Zur Preformance schau dir mal den Beitrag an: stackoverflow:Why Stored Procedure is faster than Query

Nach diesem Artikel / Abt´s Beschreibung würde es ja wenig Sinn machen eine stored procedure zu verwenden, wenn SQL die vorherigen Scripts im Speicher behält ...

Nur muss man wahrscheinlich darauf achten, das man dann weiterhin mit dem Parameter ("artikel" in meinem Beispiel) arbeitet, damit SQL das Script als bereits vorhanden erkennt.

Danke allen für die Inputs, ich werde alles noch mal überdenken ...


MfG ChrisProg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

Hallo

Zitat
Wenn Du wirklich das Übertragen von 17 Byte Deines Queries einsparen willst, dann nennt sich das Mikro-Optimierung.

Es geht mir nicht um 17 Byte ( wie kommst Du auf diese Zahl ?) sondern um die Zeit die der SQL-Server offensichtlich jedes mal braucht um das Script zu generieren ...
Zitat
Wenn das tatsächlich Dein einziges Bottleneck ist, die Übertragung eines Queries, dann Respekt.

Das ist mit Sicherheit nicht mein einziges Problem; ich habe gerade erst mit dem Projekt begonnen u. will halt von Anfang an versuchen so viel Zeit zu optimieren wie möglich.

Denn bis jetzt finde ich c# + MS SQL ist nicht schneller als VFP 8o - oder (was wohl wahrscheinlicher ist) ich habe noch nicht die richtigen Wege / Methoden gefunden ... X(

MfG ChrisProg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

Hallo,

@Abt: danke für deine Ausführungen...

Aber mein eigentliches (vielleicht auch nur gedankliches) Problem löst das nicht.

Das mit dem Drei-Schichten-Modell ist einleuchtend u. auch mit Sicherheit in größeren Projekten und im Team sinnvoll.

Noch mal zum Verständnis:

Ich habe, sagen wir mal 200 Artikel, von denen ich nacheinander die aktuelle Menge und die aktuellen Kosten/ Gewinne ermitteln möchte ...

Nacheinander alleine schon deshalb, um dem Kunden in der Statusleiste anzuzeigen, bei welchen DS / Artikel das Programm gerade ist.

Wie gesagt, das Script ist mehr als 400 Zeilen groß und es ändert sich jedes mal nur die Artikel-Nr als Filter.

Meine Logik sagt mir, das es auch eine gewisse Zeit braucht, bis ich das Script per SqlCommand an die DB übergeben habe, der Interpreter den Code in eine temporäre Prozedur umgewandelt (so habe ich es verstanden ...) und ausgeführt hat.

Nun wollte ich mir die Zeit für das 200-malige übertragen des Codes und das ebenfalls 200-malige erstellen einer temporären Prozedur sparen - deshalb der Gedanke einer "stored procedure", bei der ich ja nur noch den Parameter artikel übergeben muß.

Alleine schon, wenn diese beiden Möglichkeiten im Management Studio ausprobiere merke ich einen Zeitunterschied.

Für einen einfachen "Select ..." würde ich niemals auf die Idee einer stored procedure kommen...

Mir ist natürlich klar, das auch diese stored procedure dann gepflegt werden muss - ich plante die entsprechenden stored procedures per drop beim beginn der Programmausführung zu löschen und dann einmalig neu zu schreiben - wobei mir jetzt beim schreiben dieser Zeilen klar wird, das auch das nicht sauber funktionieren kann in einer Multi-User-Umgebung --> bleibt dann doch bei einer temporären Prozedur


MfG ChrisProg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

Hallo,

Zitat von Abt
Um Zeiten zu sparen und die Performance zu verbessern gibt es andere Wege statt die Datenbank als Logikschicht zu missbrauchen ;-)

Und was könntest Du mir da für WindowsForms empfehlen ?


MfG ChrisPorg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

Hallo,

Zitat
meinst du im Grunde SQL-Skript?
ja ...
Zitat
Wie stellst du dieses Skript zusammen?
Ich erstelle das Script (mehrere Tabellen, die über union all verknüpft ausgelesen und das Ergebnis in eine temp-Table gespeichert und anschließend weiterverarbeitet wird) immer erst im Management Studio; danach kopiere ich es in meine c#-Anwendung (als sql-command...)
Zitat
Wie viele Tabellen hat ca. so eine DB?
über 70 (von denen aber für die Abfrage "nur" ca. 30 für die Abfragen gebraucht werden) ...
Zitat
Wie Abt schon gepredigt hatte wird dadurch die Wartbarkeit und Skalierung negativ beeinflusst. In dem Fall ist diese Art von Optimierung eher nicht zu empfehlen.
Wieso beeinflusse ich die Skalierbarkeit des SQL-Servers - dieses Script () muss so ausgeführt werden - und die Skalierbarkeit hat doch eher was mit der hardwareseitigen Optimierung zu tun, oder ?

Ich war halt nur der Meinung das ich mit Hilfe einer stored procedure Zeit sparen kann, da ich ja das Script nicht jedes mal wieder an den SQL-Server schicken muss ...
So ein Script kann schon mal fast 1 s dauern (wenn es extrem viele Buchungen für diesen Artikel gibt) - das ist bei einer einzelnen Abfrage noch kein Problem; nur wenn ich Statistiken erstellen soll ...

MfG ChrisProg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

Hallo,

das war natürlich nur ein kleines Beispiel.

Konkret geht es z.B. um über 400 Zeilen Code mit deren Hilfe ich über (fast) alle Tabellen einer DB z.B. die aktuellen Bestände / Kosten eines Artikels ermittle ...

Als Ergebnis bekomme ich dann eine Tabelle / ein Ergebnis zurück.

Der Code ist dabei immer bis auf z.B. die Artikel-Nr identisch.

Ich habe bisher diese Zeilen in einem SQL-Command direkt gesendet (funktionierte einwandfrei ...) - nun wollte ich (um das ganze zu optimieren - Zeitersparnis ?) das in eine stored procedure packen - da wir mehrere Mandanten haben und ich die stored procedure nicht in jeden Mandanten eintragen will, kam ich halt auf den Gedanken diese stored procedures global zu speichern.

@Abt: ich dachte der Befehl QUOTENAME wäre extra dafür da, um das Injezieren zu verhindern ?


MfG ChrisProg

Thema: Global Stored Procedure - Ungültiger Objektname xxx ?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MS SQL-Server 2012

Hallo,

ich versuche gerade in die [master]-DB eine stored procedure zu schreiben, damit ich nicht in jeden Mandanten die stored procedure reinschreiben muß ...

Das funktioniert soweit auch ganz gut.

Nachdem die stored procedure erstellt wurde wird vom MS immer noch die ersten 7 Zeilen vorangestellt:

USE [master]
GO
/****** Object:  StoredProcedure [dbo].[sp_meineprozedur]    Script Date: 24.10.2017 16:20:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_meineprozedur] (@nr int) 
 as  
 begin
  print (db_name())
  
  select * from meinetabelle
end;

Ich rufe die prozedur mit
DECLARE @DatabaseName sysname = 'meineDB'; 
declare @sql nvarchar(255);
SET @SQL = N'USE ' + QUOTENAME(@DatabaseName) + '; exec sp_meineprozedur 27;' 
print (@sql);
exec (@sql)


Anhand des Befehls "print (db_name())" kann ich sehen, das die richtige DB ausgewählt wurde;
trotzdem erhalte ich immer die Fehlermeldung:
Fehler
"Ungültiger Objektname 'meinetabelle'.

Was muß ich noch beachten / mache ich noch falsch ???

MfG ChrisProg

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@FZelle:
Vorab: ich bin Autodidakt und kein Studierter (und komme noch aus der VB u. FoxPro-Ära wo ich nahezu 18 Jahre erfolgreich programmiert habe) ...
Nun bin ich seit 2 Jahren dabei, mich schrittweise in C# einzuarbeiten - obwohl ich VFP immer noch für das bessere DB-Programm halte (aber es wird nicht mehr weiterentwickelt und ist auch mit 64-Bit nicht kompatibel)

Warum soll ich nicht alles das, was ich immer wieder in allen Stammmasken brauche, in eine BasisForm packen ? Wenn ich die TabControls in ein UI-Control packe, habe ich ja nur die Hälfte in einer Klasse.

Ähnlich, wie "ErfinderDesRades" tue ich mich auch schwer darin, das Drei-Schichten-Modell als Allheilmittel anzusehen - ok, der Code ist zwar durch die optische Aufteilung schneller zu finden, aber ob das nun einfacher ist ...

Das mit "global" ist im Moment mein Ernst, bis ich was besseres gefunden habe: es beinhaltet alles Methoden die ich immer wieder brauche, aber nicht in allen Form´s u. Prg´s reinschreiben will - wenn dann nämlich eine Änderung/Anpassung kommt muss man das ja wieder an allen möglichen Stellen machen ...

Das das der gekapselten Objektprogrammierung widerspricht, ist mir klar ...

Wenn Du dafür einen besseren Vorschlag hast, ich bin ganz Ohr ...

Ich denke, ich habe verstanden was das ref-Schlüsselwort bedeutet - an der von Dir gezeigten Stelle ist es natürlich nicht zweckführend (obwohl es funktioniert) - es sind dort noch viele Optimierungen zu machen, das ist mir klar (vieles davon ist noch kopierter, abgewandelter Code) ...


MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Du meinst einfach so

public Mandantenstamm()

hat auch nichts gebracht...

Mich beschleicht der Verdacht, das es was mit meinem Rechner zu tun haben könnte; werde das mal am WE zu Hause probieren ...


MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

So, hier ist die abgespeckte Version:

Sie ist nicht lauffähig (zu weit abgespeckt, um die 256k zu erfüllen), aber das braucht sie auch nicht...

Es wird (hoffentlich) direkt beim öffnen die Maske "Mandantenstamm" (Formular) angezeigt.

Kopiert man nun aus einer anderen Instanz heraus mehrere unterschiedliche Felder, so erhält man die besagte Fehlermeldung ...


MfG Christian

Thema: StackPanel.Children.Remove entfernt kein Element und wirft keinen Fehler
Am im Forum: GUI: WPF und XAML

also mit VS 2010 beendet sich auch der Debugger ...

Vorschläge ?


MfG Christian

Thema: StackPanel.Children.Remove entfernt kein Element und wirft keinen Fehler
Am im Forum: GUI: WPF und XAML

Zitat von p!lle
Du legst ein neues Hauptfenster an und löscht aus diesem den Auftrag.
Aus dem tatsächlich angezeigten Hauptfenster entfernst du nichts.

-da war ich wohl völlig verpeilt, als ich das geschrrieben habe, oh man ...
So funktioniert´s dann auch ..

((Test.MainWindow)(((Grid)((ScrollViewer)((StackPanel)((Expander)(this.Parent)).Parent).Parent).Parent).Parent)).delete_element(sender);
Kann man das eigentlich noch vereinfachen ?


Danke, für´s drüberschauen


Zitat von p!lle
Schaue dir mal, wie schon von MrSparkle erwähnt, [Artikel] MVVM und DataBinding an.

Wenn ich ehrlich bin, habe ich mir das schon mal angeschaut, aber leider nicht wirklich viel verstanden X(
Zitat von p!lle
Ach ja, und deine Anwendung beendet sich nach dem Schließen nicht richtig. :D

Und damit meinst Du was ?

Ich sehe nichts mehr im TaskManager, nachdem ich das Prg geschlossen habe ...


MfG Christian

Thema: StackPanel.Children.Remove entfernt kein Element und wirft keinen Fehler
Am im Forum: GUI: WPF und XAML

@p!lle:
Hier ist das Testprojekt...

MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Programmierhans
Mach den Designer mal im Debugger auf.. damit Du eine Ahnung hast wieso es knallt...

Hier hatte ich das mal beschrieben: UserControl kann im Designer nicht hinzugefügt werden

Hat leider auch nicht geklappt; könnte aber auch daran liegen, das ich ja mein "anderes" Projekt gar nicht am "laufen" habe (wie Du in dem anderen Thread schreibst) ...

Ich bereite mal ´ne abgespeckte Version vor ...

MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Programmierhans
Du könntest das Zielform im Code so ändern dass es von Form erbt... dann scheint das kopieren ja zu funktionieren.

Nach dem kopieren änderst Du die Form wieder so ab, dass die wieder von Deiner Baseclass erbt.

Geht leider nicht, da ich aus der Basisklasse ein TabControl vererbe; und in dieses werden die Objekte kopiert ...


MfG Christian

Thema: StackPanel.Children.Remove entfernt kein Element und wirft keinen Fehler
Am im Forum: GUI: WPF und XAML

@p!lle:

Ja, ich versuche es heute Abend zusammen zu stellen (sonst am WE).

Da ich anscheinend keine Datei an eine PN hängen kann, schicke ich Dir das per E-Mail, wenn es OK ist ?

MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@Sir Rufo:
Hierbei über WinForms

Das andere (WPF) ist nur für meine Weiterbildung

MfG Christian

Thema: StackPanel.Children.Remove entfernt kein Element und wirft keinen Fehler
Am im Forum: GUI: WPF und XAML

Ich will mit einem Rechtsklick auf ein UserControl, welches über den Expander.Content an einem StackPanel hängt, genau dieses nach einer Sicherheitsabfrage löschen (also den Expander mit dem enthaltenen UserControl)

Ich habe dann also im Rechtsklick des UserControls eine Prozedur in der MainForm aufgerufen; in dieser ermittle ich das entsprechende StackPanel.Child um es dann zu löschen ...

Ich muß das ganze dynamisch machen, da die einzelnen Elemente des StackPanel erst zur Laufzeit vorhanden sind und dauernd welche hinzu kommen können ...

Stell dir das Board eine Fluglotsen vor, in dem immer wieder neue Flugzeuge (Streifen) hinzukommen und die erledigten herausgenommen werden ...


MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

leider nein ...

dann muß ich halt so weitermachen ...

Das betrifft auch komischerweise "nur" Objekte, die ich aus einer "normalen" Form auf eine Form mit einer vererbten Basisklasse kopiere; wenn ich aus einer anderen Form (oder auch der selben) mit Basisklasse kopiere, funktioniert es ...

MfG Christian

Thema: StackPanel.Children.Remove entfernt kein Element und wirft keinen Fehler
Am im Forum: GUI: WPF und XAML

Kurzer Zwischenstand:

es scheint daran zu liegen, das es das StackPanel nicht mag, wenn es aus sich heraus (also wenn es den Focus hat ...) ein Element löschen soll ...

Mach ich das über einen Button, dann funktioniert es wie gewollt

Mal schauen, wie ich das löse ...

Der geplante Ablauf:
Ich wähle ein UserControl, welches als Content am Expander hängt, per Rechtsklick aus, um diesen Expander samt UserControl dann zu löschen.


MfG Christian

Thema: "Objektverweis wurde nicht auf eine Objektinstanz festgeleg" beim Kopieren in Form mit Basisklasse
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@BhaaL:
Leider keine Änderung ...

@123thomas:
Auch das hat leider nichts gebracht ...

@MrSparkle:
Wenn Du damit meinst, ich solle den »Form«.Designer öffnen u. mir daraus den Code kopieren - das ist ja noch umständlicher, zumal die entsprechenden Codeteile ja auch noch an diversen Stellen stehen ...

MfG Christian