Wednesday, October 28, 2009

Insert Query Generator -- Give name of table as paramter and will generate insert quey

set ANSI_NULLS ON
set QUOTED_IDENTIFIER OFF
GO

CREATE PROC [dbo].[InsertGenerator]
(@tableName varchar(100))
as
--Declare a cursor to retrieve column specific information for the specified table
DECLARE cursCol CURSOR FAST_FORWARD FOR
SELECT column_name,data_type FROM information_schema.columns WHERE table_name = @tableName
OPEN cursCol
DECLARE @string nvarchar(3000) --for storing the first half of INSERT statement
DECLARE @stringData nvarchar(max) --for storing the data (VALUES) related statement
DECLARE @dataType nvarchar(1000) --data types returned for respective columns
SET @string='INSERT '+@tableName+'('
SET @stringData=''
DECLARE @colName nvarchar(50)
FETCH NEXT FROM cursCol INTO @colName,@dataType
IF @@fetch_status<>0 begin
print 'Table '+@tableName+' not found, processing skipped.'
close curscol
deallocate curscol
return
END
WHILE @@FETCH_STATUS=0
BEGIN
IF @dataType in ('varchar','char','nchar','nvarchar')BEGIN
--SET @stringData=@stringData+'''''''''+isnull('+@colName+','''')+'''''',''+'
SET @stringData=@stringData+''''+'''+isnull('''''+'''''+replace(' +@colName+','''''''','''''''''''')+'''''+''''',''NULL'')+'',''+'
print @stringData
END
ELSE
if @dataType in ('text','ntext') --if the datatype is text or something else
BEGIN
SET @stringData=@stringData+'''''''''+isnull(cast('+@colName+' as varchar(2000)),'''')+'''''',''+'
END
ELSE
IF @dataType = 'money' --because money doesn't get converted from varchar implicitly
BEGIN SET @stringData=@stringData+'''convert(money,''''''+isnull(cast('+@colName+' as varchar(200)),''0.0000'')+''''''),''+'
END
ELSE IF @dataType='datetime'BEGIN
--SET @stringData=@stringData+'''convert(datetime,''''''+isnull(cast('+@colName+' as varchar(200)),''0'')+''''''),''+' --SELECT 'INSERT Authorizations(StatusDate) VALUES('+'convert(datetime,'+isnull(''''+convert(varchar(200),StatusDate,121)+'''','NULL')+',121),)' FROM Authorizations --SET @stringData=@stringData+'''convert(money,''''''+isnull(cast('+@colName+' as varchar(200)),''0.0000'')+''''''),''+'
SET @stringData=@stringData+'''convert(datetime,'+'''+isnull('''''+'''''+convert(varchar(200),'+@colName+',121)+'''''+''''',''NULL'')+'',121),''+' -- 'convert(datetime,'+isnull(''''+convert(varchar(200),StatusDate,121)+'''','NULL')+',121),)' FROM Authorizations
END
ELSE IF @dataType='image' BEGIN
SET @stringData=@stringData+'''''''''+isnull(cast(convert(varbinary,'+@colName+') as varchar(6)),''0'')+'''''',''+'
END
ELSE --presuming the data type is int,bit,numeric,decimal
BEGIN --SET @stringData=@stringData+'''''''''+isnull(cast('+@colName+' as varchar(200)),''0'')+'''''',''+' --SET @stringData=@stringData+'''convert(datetime,'+'''+isnull('''''+'''''+convert(varchar(200),'+@colName+',121)+'''''+''''',''NULL'')+'',121),''+'
SET @stringData=@stringData+''''+'''+isnull('''''+'''''+convert(varchar(200),'+@colName+')+'''''+''''',''NULL'')+'',''+'
END
SET @string=@string+@colName+','FETCH NEXT FROM cursCol INTO @colName,@dataType
END
DECLARE @Query nvarchar(Max)
PRINT substring(@stringData,0,len(@stringData)-2)
print substring(@string,0,len(@string))
SET @query ='SELECT '''+substring(@string,0,len(@string)) + ') VALUES(''+ ' + substring(@stringData,0,len(@stringData)-2) +'''+'')'' FROM '+@tableName
exec sp_executesql @query--select @query
PRINT @query
CLOSE cursCol
DEALLOCATE cursCol

Wednesday, August 26, 2009

Itextsharp place footer at one page and at bottom

iTextSharp.text.Image footerImage = new Quote().GetFooter();

Rectangle page = document.PageSize();

PdfPTable foot = new PdfPTable(1);
foot.DefaultCell.BorderWidth = 0;
foot.DefaultCell.BorderColorBottom = new Color(255, 255, 255);

foot.AddCell(footerImage);

foot.TotalWidth = page.Width - document.LeftMargin - document.RightMargin;

foot.WriteSelectedRows(0, -1, document.LeftMargin, foot.TotalHeight - 7, writer.DirectContent);

Friday, August 7, 2009

Drag and Drop table row

http://www.isocra.com/2007/07/dragging-and-dropping-table-rows-in-javascript/#demo -- Nice demo for drag and drop Table rows.

Monday, May 18, 2009

js function convert number to money/currency format

function num2money(n_value) {

// validate input
if (isNaN(Number(n_value)))
return 'ERROR';

// save the sign
var b_negative = Boolean(n_value < 0);
n_value = Math.abs(n_value);

// round to 1/100 precision, add ending zeroes if needed
var s_result = String(Math.round(n_value*1e2)%1e2 + '00').substring(0,2);

// separate all orders
var b_first = true;
var s_subresult;
while (n_value > 1) {
s_subresult = (n_value >= 1e3 ? '00' : '') + Math.floor(n_value%1e3);
s_result = s_subresult.slice(-3) + (b_first ? '.' : ',') + s_result;
b_first = false;
n_value = n_value/1e3;
}
// add at least one integer digit
if (b_first)
s_result = '0.' + s_result;

// apply formatting and return
return b_negative
? '($' + s_result + ')'
: '$' + s_result;
}

Friday, April 10, 2009

XML File Generation

-- Generate Parent Element
if(!File.Exist(Path))
{
XmlTextWriter writer = new XmlTextWriter(Path);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("ElementName");
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
}
-- Generate Child Element
XmlDocument xmldoc = new XmlDocument();
XMLNode root = xmldoc.DocumentElement;
xmldoc.Load(path);
XmlElement ChildInfo = xmldoc.CreateElement("ChildElement");
ChildInfo.InnerText = "Test";
root.AppendChild(childInfo);

Asp Net Service setup

You can create windows service functionality usinig aspnet service.
On Application_Start Event you have to register cacheitem like below:-
private const string DummyCacheItemKey = "TestKey";
void Application_Start(object sender, EventArgs e)
{
RegisterCacheEntry();
}

private void RegisterCacheEntry()
{
// Prevent duplicate key addition
if (null != HttpContext.Current.Cache[DummyCacheItemKey]) return;

HttpContext.Current.Cache.Add(DummyCacheItemKey, "Test", null, DateTime.MaxValue,
TimeSpan.FromMinutes(1), CacheItemPriority.NotRemovable,
new CacheItemRemovedCallback(CacheItemRemovedCallback));
}
public void CacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason)
{


// Do the service works
DoWork();

// We need to register another cache item which will expire again in one
// minute. However, as this callback occurs without any HttpContext, we do not
// have access to HttpContext and thus cannot access the Cache object. The
// only way we can access HttpContext is when a request is being processed which
// means a webpage is hit. So, we need to simulate a web page hit and then
// add the cache item.
HitPage();
}
private void DoWork()
{

//task that you want to perform;
}

private void HitPage()
{
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadData(Application["AppUrl"].ToString()+ "/DummyForm.aspx");
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
System.Web.HttpApplication app = (System.Web.HttpApplication)sender;
string url = app.Request.Url.AbsoluteUri.ToString();
if (url.IndexOf("DummyForm.aspx") != -1)
{
// Add the item in cache and when succesful, do the work.
RegisterCacheEntry();
}
}

Thursday, February 26, 2009

JS for Paging HTML

function PagingHTML(PageIndex,PageSize,TotalRecords,LastRecord,fnName){
var strHTML = "<table width=100% border=\"0\"><tbody><tr style=\"font-weight: bold;\"><td><div style='float:right;'>";
var j = parseInt(TotalRecords / PageSize);
if (TotalRecords % PageSize != 0)
j++;
i = parseInt((PageIndex - 1) / 10) * 10 + 1;
if ((j - i) < 10 && j > 10)
i = j - 9;
var k;
if (PageIndex > 10)
strHTML += "<div style='float:left;padding-left:5px;'><a class=\"Paging\" href=\"javascript:"+fnName+"(" + (i - 1) + ")\"> ... </a></div>";
for (k = 1; i <= j && k <= 10; i++, k++){
if (i == PageIndex)
strHTML += "<div style='float:left;padding-left:5px;' class=\"Paging\">" + i + "</div>";
else
strHTML += "<div style='float:left;padding-left:5px;'><a class=\"Paging\" href=\"javascript:"+fnName+"(" + i + ")\">" + i + "</a></div>";
}
if (j >= i)
strHTML += "<div style='float:left;padding-left:5px;'><a class=\"Paging\" href=\"javascript:"+fnName+"(" + i + ")\"> ... </a></div>";
strHTML += "</div><div class=\"Paging\">Showing " + (((PageIndex - 1) * PageSize) + > + " - " + (((PageIndex - 1) * PageSize) + LastRecord) + " of " + TotalRecords + "</div>";
strHTML += "</td></tr></tbody></table>";
return strHTML;
}