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: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Zitat von Tom
(...)Wenn du jetzt aber sagst du hast 30 Parameter, dann vermute ich, dass diese wohl einen großen Einfluss auf den eigentlichen Ablauf des Querys haben.
Z.B. könnte ich mir vorstellen das aus einer TabelleA nur 1 Datensatz benötigt wird und bei einem neuen Lauf mit geänderten Parameter benötigt man vielleicht 10.000 Datensätze.
genau so ist es - die Parameter sind vereinfacht gesagt von/bis-Eingrenzungen
Zitat von Tom
(...)Mein Tipp ist, wenn das Query schnell genug ist und es wird mit OPTION (RECOMPILE) behoben, dann lass es so. (...)
Ich werde es mal testeten u. berichten ...
Zitat von Tom
(...)Wenn nicht, dann solltest du dir Gedanken machen wie du das große Query in kleinere unterteilen kannst.
Oder vielleicht mal die ganze Architektur überdenken, weil vernünftig hört sich das mit 30 Parameter nicht an (...)
Ich habe (bis jetzt) die Erfahrung gemacht, das es immer noch schneller ist, ein großes SQL-Script zu benutzen, als die Daten unter c# zu verarbeiten / zusammen zu führen..
(was sich dann jetzt wohl durch den Speicherhunger von DataTables teilweise erklärt...)
Zitat von Tom
(...)Wegen Skripte für Performance Fragen empfehle ich meinen Kunden immer die Skriptsammlung von Brent Ozar.
Für dich wäre z.B. https://www.brentozar.com/blitzcache/multiple-plans/ interessant.
Danke (werde ich mir mal in einer ruhigen Minute zu Gemüte führen)...

MfG Christian


Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Zitat von BerndFfm
(...)
Ob das schneller ist weiß ich nicht. Aber man kann dem Anwender eine Progressbar anzeigen und einen Abbruch Button zur Verfügung stellen.

Bei mir hat alles was länger als 2 Sekunden dauert eine Progressbar.
Auch ein guter Einwand ... 👍

Zitat von BerndFfm
(...)
Außerdem prüfe ich den Hauptspeicherbedarf. Wenn ein Anwender versucht eine Liste mit 100 Millionen Datensätzen anzuzeigen kommt eine entsprechende Fehlermeldung.

Wie kannst Du das denn, wenn doch der Reader strikt vorwarding ist, du also noch gar nicht weißt, wie viele Daten kommen werden?

MfG Christian





Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Zitat von Tom
Das hört sich eher nach einem Problem mit Parameter Sniffing an.
Probier doch mal OPTION (RECOMPILE) - Query Hints (Transact-SQL) - SQL Server

Wirst ja hoffentlich nicht ständig den SQL Server neustarten wollen ...

Schönen Gruß
Tom

Hi,

tatsächlich will ich das natürlich nicht ...

Danke für den Tip /Link 👍 - wieder was dazu gelernt ...

Wenn ich das richtig verstanden habe, dann löscht "RECOMPILE" den Batch aus den SQL-Server-Speichern, so das beim nächsten Aufruf es wieder frisch eingelesen und verarbeitet werden kann ...
Das ist natürlich für eine dauerhafte Programmierung kontraproduktiv (damit wäre ja der Geschwindigkeitsvorteil dahin...)

Weißt Du in welcher sys-Tabelle solche Batches gespeichert werden ? (in der sys.objects augenscheinlich nicht) - dann könnte man ja dort gezielt ein "sp_refreshview" durchführen 7 oder den Eintrag löschen ...


MfG Christian


Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Zitat von BerndFfm
(...) Die Parameter haben noch den Vorteil dass der SQL Server jedes Kommando nur einmal übersetzen muss wenn sich nur die Parameter ändern.
Das war auch meine bisherige Info und Intention ...

Zitat von BerndFfm
Lieber DataReader und selber durchgehen.

Was meinst Du genau,


 using (SqlDataReader x_reader = x_ermittle_verpackungen_kunde.ExecuteReader())
{
      cBestaende.Load(x_reader);
}
ist doch auch ok oder ist


using (SqlDataReader x_reader = x_ermittle_verpackungen_kunde.ExecuteReader())
{
     while (x_reader.Read())
     {
            /// werte ermitteln und in DataTable einfügen 
     }
}

trotz der Schleife noch schneller ???


MfG Christian

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Hallo,

um das ganze aufzulösen: es lag(warum auch immer) am SQL-Server beim Kunden ...

Nach einem Neustart funktionierte alles wieder.

Ich danke allen für die Inputs (ich werde zukünftig auf die DataAdapter verzichten...) 😃


Zum Verständnis meinerseits:

Was passiert eigentlich genau (physikalisch) wenn ich einen SqlCommand ausführe?
Übergibt er den Command wirklich als Batch-File an den SQL-Server, so das dieser die eigentliche Verarbeitung durchführt u. (in meinem Fall) die Ergebnistabelle zurück liefert oder macht das der Command alles selber ?


MfG Christian

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Was wird denn nun genommen / gemacht ? Kannst Du mir da ein paar Links / Stichworte nennen ?
(Irgendwie scheine ich wohl mit meinem Wissen stehen geblieben zu sein ...)

Ich vermute mal ganz stark, das es dabei auch auf den verwendeten Berichtsdesigner ankommt, richtig?


MfG Christian

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Hi Bernd,

ich brauche leider schon die DataTable ...

Die Daten, die ich bekomme muss ich teilweise editieren (Daten die so nicht im SQL vorhanden sind...), anschließend gehen Sie in einen Report ...


MfG Christian

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

So, habe es jetzt mal auf


using (SqlDataReader x_reader = x_ermittle_verpackungen_kunde.ExecuteReader())
{
     cBestaende.Load(x_reader);
}
umgestellt, leider mit dem gleichen Ergebnis 🤢

Also werde ich mich jetzt wohl der Frage von Stefan.Haegele näher befassen ...


MfG Christian

Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Zitat von Stefan.Haegele
Hast du mal geprüft welcher SQL Befehl beim SQL-Server ankommt? Ich vermute hier einen/mehrere Parameter welche hier Probleme verursachen.
Blöde Frage: wie kann man das denn ?
Zitat von Abt
(...) Warum willst Du überhaupt SqlDataAdapter nutzen, wenn Du schon ein fertiges Script hast und das auch direkt ausführen kannst?
Das ist doch DER Weg (so lese ich das jedenfalls im Netz), um ein Ergebnis direkt in eine DataTable zu bekommen; ok. man könnte einen DataReader nehmen u. durch alle Rows iterieren und "von Hand" in eine DataTable eintragen, aber das wäre sicherlich auch nicht schneller, oder ?

Zitat von BerndFfm
Was passiert wenn Du exakt den gleichen SQL Befehl im Code ausführst wie der aus dem Management Studio ?
Der im Management Studio ausgeführte Code ist der aus dem SQL-Command herauskopierte Code ...
Zitat von BerndFfm
Was passiert wenn Du einen DataReader benutzt ?
werde ich mal probieren (u. berichten) ...


MfG Christian


Thema: SQL-Query-Timeout - aber nicht im Management Studio
Am im Forum: Datentechnologien

Verwendetes Datenbanksystem: SQL-Server 13.0.5882.1

Hallo zusammen,

folgendes Problem habe ich auf einem Kunden-System (und nur dort!) :

Ich habe ein 400-zeiliges SQL-Script mit 30 Parametern, welches Daten aus einer WaWi sammelt.
Dieses Script habe ich als Text hinterlegt und lese ihn in ein entsprechenden SQL-Command ein.

Die Parameter werden alle mit ihrem korrekten Datentyp und IsNullable = true erstellt.

Rufe ich nun einen entsprechenden DataAdapter auf


 using (SqlDataAdapter da_su = new SqlDataAdapter(x_ermittle_verpackungen_kunde))
{
    da_su.Fill(cBestaende);
}
dann laufe ich jedesmal auf ein Timeout
Zitat
"Das Ausführungstimeout ist abgelaufen. Der Timeoutzeitraum wurde überschritten, bevor der Vorgang beendet wurde, oder der Server antwortet nicht. ..."
Der Fehler verweist auf die Zeile "da_su.Fill(cBestaende)" ...

Den (das?) Timeout habe ich dabei schon auf 180 sek hoch gesetzt ...

Nun zu dem eigentlichen Problem:
Rufe ich das Script im Management Studio auf (mit über declare erstellte u. mit set entsprechend gefüllte Parameter) so funktioniert es einwandfrei und braucht nicht einmal zwei Sekunden ...

Auf meinem Entwicklungssystem habe ich keine Probleme ...

Kennt jemand ein solches Phänomen oder kann mir Tips nennen, wie man noch an das Problem heran kommen kann ?


MfG Christian

Thema: Wie kann ich im UserDataGridView programmatisch den Focus setzen? (erledigt)
Am im Forum: GUI: Windows-Forms

Hallo Ralph,

danke für deine Erklärung, aber:

SelectNextControl soll doch das nächste Control in der Tab-Reihenfolge aktivieren ...

Und wenn ich das ganze mit der Tab-Taste durchspiele, dann funktioniert es ja wie gedacht ...



Mittlerweile habe ich aber das Problem lokalisieren und lösen können:

Das Grundproblem ist das gem. https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.canselect?view=netcore-3.1
Controls die Children von
- Panel
- GroupBox
- PictureBox
- ProgressBar
- Splitter
- Label
- LinkLabel
sind, nicht per Focus() oder Select() den Fokus erhalten können ...

Da der SplitContainer Panel enthält ...

Aber: mit einem Invoke (mit Delay) funktioniert es dann ...

In Code gepackt sieht es dann so aus :


        public void ControlSetFocus(Control x_control)
        {
            if (x_control.CanSelect)
            { x_control.Select(); }
            else
            {
                // lt. https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.canselect?view=netcore-3.1 
                // können Controls die Childen von 
                //      - Panel 
                //      - GroupBox
                //      - PictureBox
                //      - ProgressBar
                //      - Splitter
                //      - Label
                //      - LinkLabel 
                // sind, nicht per Focus() oder Select() den Fokus bekommen, Invoke (mit dem Delay!) geht aber ...
                System.Threading.Tasks.Task.Delay(100).ContinueWith(_ =>
                {
                    Invoke(new Action(() => { x_control.Select(); }));
                });
            }
        }

MfG Christian

Thema: Wie kann ich im UserDataGridView programmatisch den Focus setzen? (erledigt)
Am im Forum: GUI: Windows-Forms

Hallo,

irgendwie stehe ich auf dem Schlauch...

Folgender Aufbau:
- TabControl mit mehrerern Reitern
- in einem Reiter befinden sich zwei ineinander verschachtelte SplitContainer
- in dem inneren SplitContainer ist ein (User)DataGridView

die SplitContainer sind auf TabStop = false gesetzt, das DataGridView auf TabStop = true...

folgendes Ereignis habe ich abonniert:

 
        private void Pageframe_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!start && ((TabControl)sender).SelectedTab.Name.Trim() == "tabPage_positionen")
            {
                int x_current_row = userDGV_positionen.CurrentCell.RowIndex;
                userDGV_positionen.CurrentCell = userDGV_positionen["artikel_nr", x_current_row];
                ActiveControl = userDGV_positionen;
                ActiveControl.SelectNextControl(ActiveControl, true, true, true, true);

            }
        }

Was ich auch probiere ActiveControl ist und bleibt immer der oberste SplitContainer ...

Führe ich

 ActiveControl.SelectNextControl(ActiveControl, true, true, true, true);
im Direktfenster aus, erhalte ich immer false zurück


Weiß jemand Rat ?


MfG Christian

Thema: Hyperlink aus DataGridView heraus im Browser öffnen?
Am im Forum: GUI: Windows-Forms

ist ein Argument ...

also muß ich wohl damit leben ...


MfG ChrisProg

Thema: Hyperlink aus DataGridView heraus im Browser öffnen?
Am im Forum: GUI: Windows-Forms

@T-Virus:

ich habe die Doku zum CellContentClick gelesen, dort steht:

Zitat
Dieses Ereignis tritt auf, wenn auf den Zellen Inhalt geklickt wird. Sie tritt auch auf, wenn der Benutzer die LEERTASTE drückt und freigibt, während eine Schaltflächen Zelle oder eine Kontrollkästchen Zelle den Fokus besitzt, und für diese Zelltypen zweimal auftritt, wenn auf den Zellen Inhalt beim Drücken der Leertaste geklickt wird.
Wie gesagt, der Sinn erschließt sich mir nicht ...


das KeyDown, war mein Versuch die Leertaste vorher abzufangen - hat aber leider nicht funktioniert ...

MfG ChrisProg

Thema: Hyperlink aus DataGridView heraus im Browser öffnen?
Am im Forum: GUI: Windows-Forms

Auch wenn das schon recht lange her ist, aber mein Problem hat damit zu tun:

Die vorgestellte Methode hat leider den Nachteil, das sie auch auf das Drücken der Leertaste reagiert (mir fehlt das Verständnis für den Sinn dahinter gänzlich ...)

Wie kann ich verhindern, das auf die Leertaste reagiert wird ?

private void DGV_KeyDown(object sender, KeyEventArgs e)
{
     if (e.KeyCode == Keys.Space) { e.Handled = true;  }
}

Hilft leider auch nicht ...

MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

Hallo @Abt,

Danke !

Nur zum Verständnis:
Wenn ich deinem Bespiel folge, dann kann (sollte) ich ja im Prinzip alles was ich Auslöse mit async / await machen, oder würdest Du das auch machen, wenn tatsächlich "nur" visible gesetzt würde und das "füllen" an anderer Stelle passiert (und dann das "füllen" mit async /await machen)?

Macht dieses Vorgehen dann den BgWorker nicht gänzlich überflüssig?

Zu meinem tatsächlichen Problem:
Ist das denn für Dich nachvollziehbar, das ich zusätzlich zum Spring auch das Autosize auf true gesetzt haben muss, oder ist das tatsächlich ein Bug?

P.S.: kann man hier irgendwie einen Beitrag als gelöst / erledigt markieren ?


MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

@Abt:
ich bin weiß Gott nicht allwissend und weit davon entfernt perfekt zu sein, aber die Antwort finde ich doch etwas herablassend ...


Wenn Du es weißt, wäre es dann nicht besser, andere an deinem Wissen teil haben zu lassen ?

Mittlerweile weiß ich, was passiert (Bug?):

der StatusStrip steht auf AllowMerge = true, in ihm sind zwei Objekte enthalten:
- ein StatusStripText welches Spring = true und AutoSize = false eingestellt ist
- eine ProgressBar welche auf Visible = false ist

Wenn ich nun die Form starte und die Größe(Breite) ändere, dann passt sich der StatusStripText entsprechend an (wie erwartet).

Gem Microsoft Docs bedeutet Spring:

Zitat
Eigenschaftswert
Boolean
true, wenn ToolStripStatusLabel beim Ändern der Größe des Formulars automatisch den verfügbaren Leerraum von StatusStrip füllt; andernfalls false. Der Standardwert lautet false.

Nach meinem Verständnis würde das bedeuten, das wenn ein anderes Objekt hinzukommt, der verfügbare Leerraum kleiner wird u. dementsprechend auch der StatusStripText kleiner werden müsste - dem ist aber nicht so !

Wenn man nun, nachdem man die ProgressBar programmatisch auf Visible = true gesetzt hat, die Form langsam (so das der Rechner das noch zeichnen kann) in der Breite verändert, passiert immer noch nichts - wenn man das aber ruckartig macht, erscheint plötzlich die ProgressBar ...

Die Eigenschaft AutoSize des StatusStripTextes ist der entscheindende Wert - ich hatte ihn auf false gestellt, da ich glaubte, das das zusammen mit Spring nicht sauber funktionieren würde (doppelt gemoppelt)...

Aber: wenn ich AutoSize auf true stelle, dann funktioniert es sofort - ist für mich nicht wirklich nachvollziehbar, aber es ist so ...

Du siehst: es hatte wirklich nichts mit Threading zu tun ...

Ich wehre mich bestimmt nicht gegen Hilfe und bin dafür auch dankbar (so bin ich auch dankbar für den Hinweis auf asynchrone Programmierung, die bisher noch nicht auf meinem Radar war (in VFP gänzlich unbekannt...) - aber ich werde mich da mal einlesen...)


MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

@Th69:
Ich hab mal ein System.Threading.Thread.Sleep(15000); eingebaut um das zu testen - Ja, die Form ist aktiv (lässt sich verschieben) und bedienbar (Klick auf Abbrechen-Button wird ausgeführt) ...

Das mit ProgressChanged kann hier doch noch gar nicht greifen, ich will doch erst einmal die ProgressBar sichtbar machen...

"Außerdem kann man die gesamte Funktionalität besser mit asynchroner Programmierung umsetzen." - dabei könnte ich aber dem User nicht zeigen, wie weit die Datei ist (außer ich würde für jede Datei eine ProgressBar erstellen) ...

Und, ich sehe im massenhaften parallelen Upload ein Performance-Problem (alleine schon durch die Bandbreite ...)

@Abt:
Es liegt nicht am BGWorker - wenn ich


SetProgressBar(true);
aus der Form direkt aufrufe, dann durchläuft er die "else"-Schleife , steht wieder die Eigenschaft richtig, aber es wird nicht angezeigt ...


Ich werde halt damit leben müssen, das ich die ProgressBar in der Entwicklung auf visible=true und dann direkt beim Aufruf wieder auf visible = false setzten muß - nur verstehen tue ich das nicht ...


MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

Das war auch zuerst meine Vermutung, deshalb habe ich mir den Artikel durchgelesen - aber: die Aktionen sind keinesfalls "langlaufend".

Dagegen spricht auch, das alles funktioniert, wenn man die ProgressBar beim Initialize schon auf Visible = true hat (und dann direkt wieder auf Visible = false setzt) ...

Und ja, da die eigentliche Codeausführung (Upload von Dateien) länger dauern kann, wird das ganze aus einem BgWorker heraus (gleich zu Beginn) aufgerufen ...

Die ProgressBar soll dabei den Fortschritt anzeigen.


MfG ChrisPorg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

hier der nächste Schreenshot nach dem Steps ...

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

Nochmal: das ist nicht mein Problem ! er geht in keine Exception !!!

Im Anhang des Screenshots im Debug-Modus (vor dem setzen):
(eingefühte IMGs werden leider nicht akzeptiert...)

er führt die Befehle aus, die Progressbar wird aber trotzdem nicht sichtbar ...

Was ich aber vergessen habe zu erwähnen:
Der StatusStrip sitzt auf einer vererbten Form, auch der hier gezeigte Quellcode ist in der vererbten Form, der Aufruf erfolgt in der "Unterform" mit

SetProgressBar(true);

Was aber meiner Meinung nach kein Problem darstellen sollte, oder ?

Es funktionert nur, wenn ich die ProgressBar in der Entwicklungsumgebung auf Visible = true setzte !
Dann muss ich es aber im im Form-Aufruf nach InitializeComponent() wieder auf

toolStripProgressBar.Visible = false;
setzen, was ich aber eigentlich nicht will (--> mögliches "flackern"...)


MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

Das ist mir schon klar u. soll auch so sein...

Es geht hier ja "nur" um eine Anzeige für den User (also nichts wichtiges) - wenn es, warum auch immer, hier zu einem Fehler kommen sollte, dann soll dadurch nicht das Programm behindert werden ...

MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

Hallo Abt,

das ist es nicht, denn wie ich schrieb "Wenn ich durch steppe, so sehe ich das die Eigenschaft zwar auf Visible = true gesetzt wurde, aber es passiert nichts ..." - er geht nicht in eine Exception...



"weil das try/catch so einfach sinnlos und quatsch ist" - meinst Du das generell, oder für diesen Fall ?

Wenn generell, bitte erklären ...
(wenn in diesem Fall, hast Du wohl recht, das ist noch übrig geblieben vom Start-Code - aber schaden tuts ja auch nicht, oder?)


MfG ChrisProg

Thema: [gelöst] - Warum wird ToolStripProgressBar nicht sichtbar trotz setzen des Visible-Properties?
Am im Forum: GUI: Windows-Forms

Hallo,

folgendes Problem:

Ich habe eine Form mit einem StatusStrip, auf dem ein TollStripStatusLabel und eine TollStripProgressBar sind.

Die ProgressBar ist folgendermaßen voreingestellt:


            this.toolStripProgressBar.Name = "toolStripProgressBar";
            this.toolStripProgressBar.Size = new System.Drawing.Size(40, 16);
            this.toolStripProgressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
            this.toolStripProgressBar.Visible = false;
(Maximum steht auf 100 / Minimum auf 0 ...)

Die ProgressBar soll nur bei Bedarf aufgerufen werden.

Um dies zu realisieren habe ich eine Methode geschrieben die je nach Bedarf einen invoke durchführt oder aber direkt mit der ProgressBar "spricht"

        
        public void SetProgressBar(Boolean xx_aktiv = false)
        {
            try
            {
                if (this.statusStrip1.InvokeRequired)
                {
                    this.statusStrip1.Invoke(new MethodInvoker(() => this.toolStripProgressBar.Visible = xx_aktiv));
                    this.statusStrip1.Invoke(new MethodInvoker(() => this.statusStrip1.Refresh()));
                }
                else
                {
                    this.toolStripProgressBar.Visible = xx_aktiv;
                    this.statusStrip1.Refresh();
                }
            }
            catch (Exception ex) { }
        }


Nun zu meinem Problem:
die ProgressBar wird nicht sichtbar - egal, ob ich das direkt oder in einem BgWorker mache.

Wenn ich durch steppe, so sehe ich das die Eigenschaft zwar auf Visible = true gesetzt wurde, aber es passiert nichts ...

Wenn ich aber die Eigenschaft Visible in den Form-Eigenschaften auf true stelle, dann sehe ich die ProgressBar, sobald die Maske angezeigt wird (was ich ja nicht will...).

Kann mir das bitte mal jemand plausibel erklären ?

MfG ChrisProg

Thema: Outlook- abw. Absender funktioniert nicht
Am im Forum: Office-Technologien

Hallo zusammen,

leider komme ich mit diesen doch recht speziellen Problem nicht weiter...

Folgendes Scenario: Outlook welches an einem Exchange-Server hängt.

In dem Profil sind neben dem Haupt-Konto noch weitere Exchange-Konten (u. auch Pop-/IMAP-Konten zu Testzwecken) eingehängt.

Es soll nun auch C# heraus eine Mail versendet werden, die mit dem Absendernamen eines eingehängten Kontos versendet u. natürlich auch aus dessen Verzeichnisstruktur heraus gesendet wird...

Hierzu wollte ich MailItem.SendUsingAccount verwenden, aber ...

Das erste Problem ist gleich das Ermitteln des Absendernamens, wenn dieser von einem weiteren Exchange-Konto stammt...
Ich wollte mit Hilfe von

 foreach (Outlook.Account account in lo_OutApp.Session.Accounts)  {...}
den entsprechenden Account ermitteln und benutzen; aber dort werden nur das Haupt-Exchange-Konto u. die Pop-/IMAP-Konten enumeriert - warum weiß der Geier ...

Nun habe ich lange gesucht u. probiert u. bin dann irgendwann auf MailItem.SentOnBehalfOfName gestoßen...

Nun habe ich zwar unter Absender die gewünschte Adresse stehen, aber gesendet wird aus dem Standard-Exchange Ordner heraus

Weiß hier jemand, warum die weiteren Exchange-Konten nicht in den Accounts auftauchen und/oder wie ich aus dem richtigen Ordner senden kann ?


MfG

Thema: Wie bei Crystal Reports Standardwerte /-größen einstellen oder zurücksetzen?
Am im Forum: Rund um die Programmierung

ich sehe da nur "reference" oder "developer guides" für die API


MfG Christian

Thema: Wie bei Crystal Reports Standardwerte /-größen einstellen oder zurücksetzen?
Am im Forum: Rund um die Programmierung

Zitat
Ansonsten kann man den Report auch über die CR-API öffnen ...

welche man aber nicht hat, wenn man mit der .NET-Version arbeitet ...

Zumindest finde ich keine im Wiki ...


MfG Christian

Thema: Wie bei Crystal Reports Standardwerte /-größen einstellen oder zurücksetzen?
Am im Forum: Rund um die Programmierung

dem scheint wohl so, aber eben nicht für die deutsche Schreibweise geeignet ...

Meine Hoffnnug ist, das man das irgendwo einstellen kann u. nicht jedes Feld einzeln prüfen / anpassen muß ...


MfG Christian

Thema: Wie bei Crystal Reports Standardwerte /-größen einstellen oder zurücksetzen?
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich suche mir seit längeren einen Wolf nach folgenden Einstellungen in/für Crystal Reports:

die Standardfeldgröße /Höhe) scheint immer 221 Pixel zu sein, obwohl gerade im deutschen 240 deutlich besser ist (wegen der Anzeige von Kommata u. allen Zeichen mit unterstrichen (g, y, p, ...))

Ich habe nirgends was gefunden, um diese Einstellung zu ändern ;-(


Unter Bericht/Eigenschaften gibt es einen Bereich Statistik. Kann man dessen Werte zurücksetzen ?


MfG Christian

Thema: [erledigt] Framework *.cs wird nicht gefunden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Auch wenn der Beitrag schon älter ist ...

In StackOverFlow habe ich einen Hinweis gefunden, wonach das wohl ein Problem von VS2017 sein soll -->

Zitat
Had the same issue, neither proposed above solutions helped me to solve the problem. Occurred in VS 2017. When I ran the project in Visual Studio 2019, everything worked. So just try to run it in other environments. Hope this answer will help someone

Wenn man nicht gerade dabei ist, eine DLL zu programmieren, hilft in jedem Fall das Checkfeld "Nur meinen Code ausführen" unter "Extras/Optionen/Debugging", für die o.g. Arbeit jedoch nicht !

Da hilft es unter "Extras/Optionen/Debugging/Symbole" das Optionsfeld "Nur angegebene Module laden" zu aktivieren und dann unter "eingeschlossene Module angeben" die entsprechende dll hinzuzufügen...


MfG Christian