MSSQL

Nmap to find MS SQL server

I’ve had to install several instance of SLQ Express recently and for the life of me I’m having a devil of a time getting external access to these instances.  Between the firewalls and SLQ networking protocols it’s hard to know if you did everything right and will be able to connect remotely with these installations.  Nmap can help, here is the syntax to look for them:

nmap -p T:1433 -sV pds-web -oG tcp_scan_results.txt

Uncategorized

Google Safe Browsing

I run quite a few web sites and every occasionally I run across an issue where I want to check to see if there is anything that Google has found about possible issues.  You can utilize their safe browsing site to check your sight:

http://www.google.com/safebrowsing/diagnostic?site=www.example.org

MSSQL

Truncating SQL 2008 Transaction Log

Use the following to truncate a log, the TestDbLog is the logical file name of the log file.

USE TestDb 
GO
ALTER DATABASE TestDb SET RECOVERY SIMPLE WITH NO_WAIT
DBCC SHRINKFILE(TestDbLog, 1)
ALTER DATABASE TestDb SET RECOVERY FULL WITH NO_WAIT
GO
MSSQL

Finding column info for a table

Ran across this little gem while working on some integrations, really comes in handy.

SELECT 
    c.name 'Column Name',
    t.Name 'Data type',
    c.max_length 'Max Length',
    c.precision ,
    c.scale ,
    c.is_nullable,
    ISNULL(i.is_primary_key, 0) 'Primary Key'
FROM    
    sys.columns c
INNER JOIN 
    sys.types t ON c.system_type_id = t.system_type_id
LEFT OUTER JOIN 
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN 
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID('Candidate')
Uncategorized

New blue tooth keyboard

image

I just got a new blue tooth wireless keyboard for use with my tablet.  I like it, it allows me to enter information to it a hell of a lot faster than the on screen keyboard.  So far I like it but as you can see it’s a little small but I think that I can adjust to it…

C#

Clearing a drop down list value on a web form

Ran into this issue with trying to clear a data linked drop down list on a web form, it was tricky because there are two controls for the drop down list, the first one being the ‘source’ and the second one being the sub-source. All I had to do was clear the source by using the following line:

ddlSource.SelectedIndex = -1;
C# MSSQL

Writing form data to SQL DB with C#

In having to convert my current VB projects into C#, I ran into an issue trying to write to a DB from a form.  This blog opened my eyes to how this is accomplished and here is the code I used to get the unsubscribe feature to work.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;

namespace Taleo_UnsubscribeJPN
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DateTime tstamp = DateTime.Now;
String email = Request.QueryString["email"];
String atsid = Request.QueryString["atsid"];
lblEmail.Text = email;

}

protected void btnRemove_Click(object sender, EventArgs e)
{
String strBrowserInfo = (Server.HtmlEncode(Request.UserAgent));
String strIPAddress = (Server.HtmlEncode(Request.UserHostAddress));
String atsid = Request.QueryString["atsid"];
string connection_string = "Data Source=DB_Server;Initial Catalog=TaleoData;Persist Security Info=True;User ID=tdowner;Password=password";
string query = "insert into OptOutEmail (email, tstamp, processed, atsid, remote_addr, http_user_agent) values ('" + lblEmail.Text + "', '" + DateTime.Now + "', " + 0 + ", '" + atsid + "', '" + strIPAddress + "', '" + strBrowserInfo + "')";
SqlConnection connection1 = new SqlConnection(connection_string);

SqlCommand insertCommand = new SqlCommand(query, connection1);

connection1.Open();

insertCommand.ExecuteNonQuery();

connection1.Close();

Server.Transfer("Confirmation.aspx?email=" + lblEmail.Text);

}
}
}

IIS

Binding https Protocol to 2 Sites with Host Headers

I almost didn’t know what the hell to title this post because it’s almost too obscure to understand.  Here’s the skinny:

I’m having to move our DNN site from a server that is on life support (win2k3/IIS6/32bit) to a brand spanking new VM (w2k8/IIS7/64bit).  Sounds like fun doesn’t it?  Well the main problem is that the default web site is DNN but we also have to host an unsubscribe form so if you don’t want job notices you just click remove and we stop sending notices.  Should be nice and easy to set up host headers to catch this.  And if works fine and well if you just want to do it on port 80.  But god forbid you want to use host headers for SSL.  You have to use the appcmd.exe from the command line to do this.  Now I have no idea how it works but here is what did the trick for me and binding the unsubscribe site to SSL with host headers:

appcmd set site /site.name:”unsubscribe” /+bindings.[protocol=’https’,bindingInformation=’*:443:unsubscribe.pdstech.com’]

And just a note I found on technet, even if you are running a 64bit server don’t use the exe from the syswow64 directory, so much for consistancy MSFT:)

MSSQL

Finding Size of Tables in MSSQL Database

I was trying to explain to my boss that the SQL database we’re using for the intranet was somewhere in the 400 MB range when he asked ‘What’s taking up all the space?’  I was a little taken aback, I mean databases collect data and that takes up space right?  Well it got me thinking what the hell is taking up all the space.  I found this great query that tells all:)

</pre>
SELECT
 t.NAME AS TableName,
 i.name AS indexName,
 SUM(p.rows) AS RowCounts,
 SUM(a.total_pages) AS TotalPages,
 SUM(a.used_pages) AS UsedPages,
 SUM(a.data_pages) AS DataPages,
 (SUM(a.total_pages) * 8) / 1024 AS TotalSpaceMB,
 (SUM(a.used_pages) * 8) / 1024 AS UsedSpaceMB,
 (SUM(a.data_pages) * 8) / 1024 AS DataSpaceMB
FROM
 sys.tables t
INNER JOIN
 sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
 sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
 sys.allocation_units a ON p.partition_id = a.container_id
WHERE
 t.NAME NOT LIKE 'dt%' AND
 i.OBJECT_ID > 255 AND
 i.index_id <= 1
GROUP BY
 t.NAME, i.object_id, i.index_id, i.name
ORDER BY
 OBJECT_NAME(i.object_id)
<pre>
Uncategorized

Oracle Data Provider for ASP.NET Windows 2008 R2 x64

Being an integration engineer can be frustrating at times to say the least.  Oracle in my opinion doesn’t play too well with Microsoft but I did find the data access components I needed to make my reporting work.  It’s here on Oracles site.  Iused the 64bit ODAC 11.2.Release 4 (11.2.0.3.0) Xcopy for Windows x64.  Extract and follow the instruction in the readme file and cross your fingers and spin around 3 times for luck.  It can’t hurt when dealing with Oracle products:)