meine Sys/Db admin & Developper Notitzen - wer Rechtschreibfehler findet darf sie behalten ... my Sys/Db Admin and developper notes - I don't care about typos
Monday, July 30, 2012
The name 'components' is already used by another object
Windows Forms Designer Fehlermeldung:
The name 'components' is already used by another object
Ursache: doppelte Zeile
this.components = new System.ComponentModel.Container();
in
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.components = new System.ComponentModel.Container();
einfach löschen dann gehts wieder
Sunday, July 22, 2012
windows form textbox.text threadsicher setzten
/// used To set Text Box Threadsave (Invoked by this MoneyManagerForm)
///
/// Textbox to set text
/// text is set to Textbox
private delegate void DelegateSetTbText(TextBox tb, string s);
/// threadsave set of Text of Textbox
///
/// Text of this Textbox is set
/// new text for textbox
private void SetText(TextBox tb, string text)
{
// InvokeRequired required compares the thread ID of the
// calling thread to the thread ID of the creating thread.
// If these threads are different, it returns true.
if (this.InvokeRequired)
{
DelegateSetTbText d = new DelegateSetTbText(SetText);
this.Invoke(d, new object[] { tb, text });
}
else
{
tb.Text = text;
tb.Enabled = true;
}
}
Monday, July 16, 2012
Fehler HRESULT 0x8007052E
Bei Reporting Services trat nach Passwortänderung des WindowsDienst- und Execution Kontos folgender Fehler auf:
Fehler bei der Berichtsverarbeitung. (rsProcessingAborted)
Der Berichtsserver-Windows-Dienst 'ReportServer' wird nicht ausgeführt. Dieser Dienst muss ausgeführt werden, damit der Berichtsserver verwendet werden kann. (rsReportServerServiceUnavailable)
=> Aktualisierung des Paswortes des WIndows Dienst SqlServer Reporting Services und start des Dienstes hatte zum Erfolg, dass der Reportmanager wieder bedienbar war (Navigation durch die Ordner, Eigenschaften von Berichten änderun usw. ging wieder) aber beim Ausführen des Reports trat folgender Fehler auf:
Fehler bei der Anmeldung. (rsLogonFailed)
Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort. (Ausnahme von HRESULT: 0x8007052E)
dieser konnte durch aktualisierung mit dem neuen Passwort im Konfigurationmanager unter Ausführungskonto (ganz unten links) behoben werden
Monday, July 09, 2012
sql reporting services slow startup
Der erste Aufruf von Reporting Services ist meist sehr langsam, weil die Seite inwzischen recyceld wurde. Man kann das Recycle Intervall verlängern, sodass bei wenig frequentierten Berichtsservern trotzdem ein schneller Respond erfolgt:
In
C:\Programme\Microsoft SQL Server\MSRS10.CRM\Reporting Services\ReportServer\rsreportserver.config
72000
von 720 erhöhen
Wednesday, July 04, 2012
sql server logins dbuser connection
Auf Sql Server Ebene gibt es Logins (die auch einer WIndows Gruppe, einem WIndowws User zugeordnet sein können) - auf Datenbankebene gibt es die DAtenbank Rollen und Benutzer.
Damit ein Login auf eine Datenbank Zugreifen kann muß es mit einem Datenbankuser dort verbunden sein.
Über das SSMS kann bei den Eigenschaften des SqlServerLogins unter Usermapping ein Login mit einer Datenbank verbunden werden, indem dort ein DbUser mit demselben Namen wie das sqlserverLogin erzeugt wird. Gibt es diesen User schon, erfolgt ein Fehler und man muß den User und das Login mittels der Stored Procedure sp_change_users_login verbinden:
z.b. exec sp_change_users_login 'Auto_Fix','DbUserName'
exec sp_change_users_login 'Report' listet die unverbundenen DB User auf.
Um festzustellen welcehr Dbuser mit welchem Login verbunden ist:
select u.name as dbusername,l.name as loginname from sys.sysusers u join sys.syslogins l on l.sid=u.sid
Tuesday, July 03, 2012
typed Dataset Contrain Exception
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
Unfortunatly, there is no hint which Constraint(s) causes the exeption =>
try
1) set Allwo DBNull to true
2) Length of String ok ? (Set to max)
3) double key ?
or try to load same rowset into a untyped dataset and copy each row and each field into the typed one
Friday, June 22, 2012
Click Once empty Error Message
if you try running Setup from Click Once and an empty errorbox appears, delete the suo file of your solution and publish again
Click Once Prerequisites
Click Once Prerequisites are located in
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
there you can add your own packeges
Tuesday, June 12, 2012
Auto Update Statistics Async
Beim Synchronen Update, werden sobald der Query Optimizer das Erignis Statistiken veraltert wirft, dieseaktualisiert und erst danach die Query ausgeführt. Beim Asynchronen AutoUpdate wird die Query noch mit den veralterten Stat. Ausgeführt, im Hintergrund aber ein Task zum Updaten derselben gestartet, und wenn dieser fertig sit, werden alle Queries mit den neuen Statistiken geliefert.
Thursday, May 31, 2012
Click Once adding files to publish / missing .confing.deploy
1) to add Files for publishing: every File in Project with Property Build Action Content is added
2) app.config -> app.config.deploy but the setup says missing *.exe.config.deploy => add a *.exe.config file and the Pubsliher makes a .deploy from it
Friday, May 25, 2012
regex in Vs und SSMS
Im Visual Studio oder im Sql Management Studio (SSMS) muß man statt den normalen regex quantifiers {n} ^n verwenden
Friday, April 13, 2012
oracle psql <-> sqlserver tsql
sql sever - oracle
| sql sever | oracle |
|---|---|
| IsNull(feld,NullErsetzWert) | NVL(Fld,NullReplWert) |
| select * into dest from source | create dest as select * from source |
| select top 10 * from x | select * from x where rownum<=10 |
c#<->vb.net
| c# | vb.net |
|---|---|
| using namespace | imports namespace |
| string s="Hallo" | dim s as String="Hallo" |
| this | me |
| And, or kurzschluss auswertung | andalso, orelse |
Wednesday, January 25, 2012
Trigger on all server
alter TRIGGER [trgDatabaseCreated]
ON ALL SERVER
with execute as 'sa'
FOR CREATE_DATABASE
AS
declare @data XML
declare @message XML
SET @data=EVENTDATA()
declare @msg as nvarchar(max)
set @msg = 'Databasecreated' + @data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)') + @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)')
INSERT INTO [InterneVerwaltung].[dbo].[AllgLog] ([name],[description],xmldesc)
VALUES ('trgDatabaseCreated',@msg,@data)
--INSERT INTO InterneVerwaltung.dbo.AllgLog
--(DB_User,Event,TSQL)
--VALUES
--(GETDATE(),
--CONVERT(nvarchar(100),CURRENT_USER),
--@data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)'),
--@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)'))
exec msdb.dbo.sysmail_start_sp
Execute msdb.dbo.sp_send_dbmail
@profile_name='sqlcl1DbMail',
@recipients='erich.geierlehner@ecs.steyr.com',
@subject='databasewascreated',
@body=@msg,
@query='select top 1 * from [InterneVerwaltung].[dbo].[AllgLog] with (NOLOCK) order by created DESC';
ON ALL SERVER
with execute as 'sa'
FOR CREATE_DATABASE
AS
declare @data XML
declare @message XML
SET @data=EVENTDATA()
declare @msg as nvarchar(max)
set @msg = 'Databasecreated' + @data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)') + @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)')
INSERT INTO [InterneVerwaltung].[dbo].[AllgLog] ([name],[description],xmldesc)
VALUES ('trgDatabaseCreated',@msg,@data)
--INSERT INTO InterneVerwaltung.dbo.AllgLog
--(DB_User,Event,TSQL)
--VALUES
--(GETDATE(),
--CONVERT(nvarchar(100),CURRENT_USER),
--@data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)'),
--@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(2000)'))
exec msdb.dbo.sysmail_start_sp
Execute msdb.dbo.sp_send_dbmail
@profile_name='sqlcl1DbMail',
@recipients='erich.geierlehner@ecs.steyr.com',
@subject='databasewascreated',
@body=@msg,
@query='select top 1 * from [InterneVerwaltung].[dbo].[AllgLog] with (NOLOCK) order by created DESC';
Thursday, August 11, 2011
asp.net Apps tracen
in der Web.config im Abschnitt system.web folgenden xml Tag (spitze Klammern hinzu)
trace enabled="true" pageOutput="true" requestLimit="20" traceMode="SortByTime" localOnly="true"
einfügen, an jeder Seite sollte nun ein Trace Abschnitt angehängt werden, eine Übersicht über alle Traces bekommt man indem man im hauptdir der Anwendung
trace.axd
aufruft (die gibt es physikalisch nicht, wird aber von asp.net für jede Anwendung bereitgestellt)
Monday, August 08, 2011
check sql agent running with tsql
if 0<(select count(*) from sysprocesses where program_name like 'SQLAgent%')
begin
print 'sql agent is running'
end
else
begin
print 'sql agent is not running'
end
begin
print 'sql agent is running'
end
else
begin
print 'sql agent is not running'
end
Friday, August 05, 2011
Datagridview auf Bindingsource an Datatable
Ereignisreihenfolge beim Hinzufügen einer neuen Zeile:
1) Bindingsource_ADddingNEw
2) Datatable_TableNewRow
3) Datagridview_UserAddedRow
wenn jemand im Datagridview auf die neue Zeile klickt, wird nicht unbedingt schon eine neue Row hinzugefügt, erst wenn jemand verscuht einen Wert einzutragen => mit Bindingsource.AddNEw() kann man händisch eine neue Row hinzufügen
1) Bindingsource_ADddingNEw
2) Datatable_TableNewRow
3) Datagridview_UserAddedRow
wenn jemand im Datagridview auf die neue Zeile klickt, wird nicht unbedingt schon eine neue Row hinzugefügt, erst wenn jemand verscuht einen Wert einzutragen => mit Bindingsource.AddNEw() kann man händisch eine neue Row hinzufügen
Saturday, July 30, 2011
LINQ und Datatables
allgemeine (untypisierte) Datatable
var res = from x in dt.AsEnumerable() select x.Field(c.ColumnName);
join zweier typisierter Datasets:
var rsInner = from s in dtSource
join c in dtComp on s.FullName equals c.FullName
where s.Nullable!=c.Nullable || s.MaxLength!=c.MaxLength || s.Type!=c.Type
select new { s.TableName, s.ColumnName,
s.Nullable, cNullAble = c.Nullable,
s.MaxLength, cMaxL = c.MaxLength,
s.Type, cType = c.Type};
var res = from x in dt.AsEnumerable() select x.Field
join zweier typisierter Datasets:
var rsInner = from s in dtSource
join c in dtComp on s.FullName equals c.FullName
where s.Nullable!=c.Nullable || s.MaxLength!=c.MaxLength || s.Type!=c.Type
select new { s.TableName, s.ColumnName,
s.Nullable, cNullAble = c.Nullable,
s.MaxLength, cMaxL = c.MaxLength,
s.Type, cType = c.Type};
Tuesday, July 26, 2011
typed Dataset Null Werte
Um Null Werte abzufragen verwendet man die IsXXXNull() Methode der typed Datarow Instanzen, um Null Werte zu schreiben die SetXXXNull() Methode , wobei XXX der Feldname ist.
z.b.:
DsCRM.tTextNmDataTable dtTextNm = new DsCRM.tTextNmDataTable();
DsCRM.tTextNmRow drTextNm = dtTextNm.NewtTextNmRow();
drTextNm.ChildId = dr.Id;
drTextNm.ParentId = (int)dt.ExtendedProperties[C.ParentId];
drTextNm.Created = DateTime.UtcNow;
drTextNm.CreatedBy = Data.WinUserName;
drTextNm.SetValidUntilNull();
drTextNm.IsValidUntilNull();
z.b.:
DsCRM.tTextNmDataTable dtTextNm = new DsCRM.tTextNmDataTable();
DsCRM.tTextNmRow drTextNm = dtTextNm.NewtTextNmRow();
drTextNm.ChildId = dr.Id;
drTextNm.ParentId = (int)dt.ExtendedProperties[C.ParentId];
drTextNm.Created = DateTime.UtcNow;
drTextNm.CreatedBy = Data.WinUserName;
drTextNm.SetValidUntilNull();
drTextNm.IsValidUntilNull();
KeyCode zum Abfragen Return / Enter
private void cbBranche_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
}
}
{
if (e.KeyCode == Keys.Return)
{
}
}
Subscribe to:
Posts (Atom)