I got this need for exporting excel in a text file with comma delimters and single quotes to troubleshoot a issue in oracle database.
The issue was to find the records in the table with against their primary keys, now the primary key type was a string and I had them in a excel file and they were 100s in number, now think to write a where clause it will be a pain in ass..
So I found out the method to export the excel in text format with the records as comma delimtted and with single quotes as we need them in where clause.
Eg. Select * from Employee Where EmployeeID in ('XYZ', 'ABC', 'YUV'.......)
1. Copy your contents in a MACRO enabled Excel workbook.
2. Press Alt + F11 or go to Developer Tab and then click Visual Basic in the code group.
3. Go to MS main menu - > Excel Options - > Popular - > select the Show Developer and click OK.
4. Open the Visual Basic editor and click the Module on the insert menu.
5. Paste the following code in the module space
Sub ExportTextFormat()
' Dimension all variables.
Dim DestFile As String
Dim FileNum As Integer
Dim ColumnCount As Integer
Dim RowCount As Integer
' Prompt user for destination file name.
DestFile = InputBox("Enter the destination filename" _
& Chr(10) & "(with complete path):", "Quote-Comma Exporter")
' Obtain next free file handle number.
FileNum = FreeFile()
' Turn error checking off.
On Error Resume Next
' Attempt to open destination file for output.
Open DestFile For Output As #FileNum
' If an error occurs report it and end.
If Err <> 0 Then
MsgBox "Cannot open filename " & DestFile
End
End If
' Turn error checking on.
On Error GoTo 0
' Loop for each row in selection.
For RowCount = 1 To Selection.Rows.Count
' Loop for each column in selection.
For ColumnCount = 1 To Selection.Columns.Count
' Write current cell's text to file with quotation marks.
Print #FileNum, "'" & Selection.Cells(RowCount, _
ColumnCount).Text & "',";
' Check if cell is in last column.
If ColumnCount = Selection.Columns.Count Then
' If so, then write a blank line.
Print #FileNum,
Else
' Otherwise, write a comma.
Print #FileNum, ",";
End If
' Start next iteration of ColumnCount loop.
Next ColumnCount
' Start next iteration of RowCount loop.
Next RowCount
' Close destination file.
Close #FileNum
End Sub
6. Save the file, select the data you want to export and run the Macro ExportTextFormat.
7. Give a filename with the full path (eg. D:/Test.txt)
8. You are good to go now.
Hope this helps!
-Azhar
Thursday, December 23, 2010
Wednesday, October 27, 2010
PL/SQL Date function - to_date()
In Oracle/PLSQL, the to_date function converts a string to a date.
The syntax for the to_date function is:
to_date( string1, [ format_mask ], [ nls_language ] )
string1 is the string that will be converted to a date.
format_mask is optional. This is the format that will be used to convert string1 to a date.
nls_language is optional. This is the nls language used to convert string1 to a date.
The following is a list of options for the format_mask parameter. These parameters can be used in many combinations.
Applies To:
Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g
For example:
to_date('2003/07/09', 'yyyy/mm/dd') would return a date value of July 9, 2003.
to_date('070903', 'MMDDYY') would return a date value of July 9, 2003.
to_date('20020315', 'yyyymmdd') would return a date value of Mar 15, 2002.
The syntax for the to_date function is:
to_date( string1, [ format_mask ], [ nls_language ] )
string1 is the string that will be converted to a date.
format_mask is optional. This is the format that will be used to convert string1 to a date.
nls_language is optional. This is the nls language used to convert string1 to a date.
The following is a list of options for the format_mask parameter. These parameters can be used in many combinations.
Parameter | Explanation |
---|---|
YEAR | Year, spelled out |
YYYY | 4-digit year |
YYY YY Y | Last 3, 2, or 1 digit(s) of year. |
IYY IY I | Last 3, 2, or 1 digit(s) of ISO year. |
IYYY | 4-digit year based on the ISO standard |
RRRR | Accepts a 2-digit year and returns a 4-digit year. A value between 0-49 will return a 20xx year. A value between 50-99 will return a 19xx year. |
Q | Quarter of year (1, 2, 3, 4; JAN-MAR = 1). |
MM | Month (01-12; JAN = 01). |
MON | Abbreviated name of month. |
MONTH | Name of month, padded with blanks to length of 9 characters. |
RM | Roman numeral month (I-XII; JAN = I). |
WW | Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year. |
W | Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh. |
IW | Week of year (1-52 or 1-53) based on the ISO standard. |
D | Day of week (1-7). |
DAY | Name of day. |
DD | Day of month (1-31). |
DDD | Day of year (1-366). |
DY | Abbreviated name of day. |
J | Julian day; the number of days since January 1, 4712 BC. |
HH | Hour of day (1-12). |
HH12 | Hour of day (1-12). |
HH24 | Hour of day (0-23). |
MI | Minute (0-59). |
SS | Second (0-59). |
SSSSS | Seconds past midnight (0-86399). |
FF | Fractional seconds. Use a value from 1 to 9 after FF to indicate the number of digits in the fractional seconds. For example, 'FF4'. |
AM, A.M., PM, or P.M. | Meridian indicator |
AD or A.D | AD indicator |
BC or B.C. | BC indicator |
TZD | Daylight savings information. For example, 'PST' |
TZH | Time zone hour. |
TZM | Time zone minute. |
TZR | Time zone region. |
Applies To:
Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g
For example:
to_date('2003/07/09', 'yyyy/mm/dd') would return a date value of July 9, 2003.
to_date('070903', 'MMDDYY') would return a date value of July 9, 2003.
to_date('20020315', 'yyyymmdd') would return a date value of Mar 15, 2002.
Thursday, September 16, 2010
Disabling script debugging in VS 2008 and IE 8
Visual studio 2008 creates a problem when it starts debugging the javascript. It actually generates a number of files by name anonymous code which leads to a slow debugging in development environment.
In IE 7 you can disable the script debugging directly from IE tools. But in IE 8 it doesn't work, there are some workarounds given by microsoft as I thought it is good to paste here.
Work around:
1. This work around requires the Silverlight 2 Tools for Visual Studio 2008 SP1 to be installed. So if you don't have these tools installed, you can download them from Microsoft (Click Here). If this is not an option for you, there is some alternative work arounds at the bottom of this blog post.
2. Right click on your project and open up project properties
3. Go to the 'Start Options' sheet, and click the 'Silverlight' button at the bottom of the screen. Because the debugger cannot debug both Silverlight code and Script code at the same time, this will disable Script debugging and therefore avoid the problem.
Alternative work around – disable all script debugging:
* Open a new command prompt (start->run, cmd.exe). If you are on a 64-bit computer this needs to be a 32-bit prompt (start->run, c:\windows\syswow64\cmd.exe)
* reg add HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {4FF9DEF4-8922-4D02-9379-3FFA64D1D639} /f
If you are using Visual Web Developer Express, replace 'VisualStudio' with 'VWDExpress':
* reg add HKLM\SOFTWARE\Microsoft\VWDExpress\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {4FF9DEF4-8922-4D02-9379-3FFA64D1D639} /f
If you want to restore your computer so that you can debug scripts again:
* reg add HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {170EC3FC-4E80-40AB-A85A-55900C7C70DE} /f
Work around for performance problems caused by 'anonymous code' nodes:
Some sites run into problems being debugged due to numerous "anonymous code" nodes in solution explorer. For these sites, instead of disabling script debugging completely, it's possible to disable just the 'anonymous code' nodes. This requires Visual Studio 2008 SP1. To do so:
* reg add HKCU\Software\Microsoft\VisualStudio\9.0\Debugger /v HideAnonymousScriptCodeNodes /t REG_DWORD /d 1 /f
Hope this helps!!
-Azhar
In IE 7 you can disable the script debugging directly from IE tools. But in IE 8 it doesn't work, there are some workarounds given by microsoft as I thought it is good to paste here.
Work around:
1. This work around requires the Silverlight 2 Tools for Visual Studio 2008 SP1 to be installed. So if you don't have these tools installed, you can download them from Microsoft (Click Here). If this is not an option for you, there is some alternative work arounds at the bottom of this blog post.
2. Right click on your project and open up project properties
3. Go to the 'Start Options' sheet, and click the 'Silverlight' button at the bottom of the screen. Because the debugger cannot debug both Silverlight code and Script code at the same time, this will disable Script debugging and therefore avoid the problem.
Alternative work around – disable all script debugging:
* Open a new command prompt (start->run, cmd.exe). If you are on a 64-bit computer this needs to be a 32-bit prompt (start->run, c:\windows\syswow64\cmd.exe)
* reg add HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {4FF9DEF4-8922-4D02-9379-3FFA64D1D639} /f
If you are using Visual Web Developer Express, replace 'VisualStudio' with 'VWDExpress':
* reg add HKLM\SOFTWARE\Microsoft\VWDExpress\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {4FF9DEF4-8922-4D02-9379-3FFA64D1D639} /f
If you want to restore your computer so that you can debug scripts again:
* reg add HKLM\SOFTWARE\Microsoft\VisualStudio\9.0\AD7Metrics\Engine\{F200A7E7-DEA5-11D0-B854-00A0244A1DE2} /v ProgramProvider /d {170EC3FC-4E80-40AB-A85A-55900C7C70DE} /f
Work around for performance problems caused by 'anonymous code' nodes:
Some sites run into problems being debugged due to numerous "anonymous code" nodes in solution explorer. For these sites, instead of disabling script debugging completely, it's possible to disable just the 'anonymous code' nodes. This requires Visual Studio 2008 SP1. To do so:
* reg add HKCU\Software\Microsoft\VisualStudio\9.0\Debugger /v HideAnonymousScriptCodeNodes /t REG_DWORD /d 1 /f
Hope this helps!!
-Azhar
Thursday, August 12, 2010
How to get current week start date from current date in .NET
Following code will give you the week start date on passing any date.
private DateTime getWeekStartDate(DateTime weekDate)
{
DateTime currentWeekStartDate = weekDate;
string StartDay = "1" // You can set any day as start day of the week
// 1 for monday, 2 for tuesday and so on
while (!StartDay.ToLower().Equals(currentWeekStartDate.DayOfWeek.ToString().ToLower()))
{
currentWeekStartDate = currentWeekStartDate.Subtract(new TimeSpan(1, 0, 0, 0));
}
return currentWeekStartDate
}
Hope this helps, thanks
private DateTime getWeekStartDate(DateTime weekDate)
{
DateTime currentWeekStartDate = weekDate;
string StartDay = "1" // You can set any day as start day of the week
// 1 for monday, 2 for tuesday and so on
while (!StartDay.ToLower().Equals(currentWeekStartDate.DayOfWeek.ToString().ToLower()))
{
currentWeekStartDate = currentWeekStartDate.Subtract(new TimeSpan(1, 0, 0, 0));
}
return currentWeekStartDate
}
Hope this helps, thanks
How to catch a drop down event from a datalist and have a cascading effect.
Many a times in projects we have come across a need to get a drop down event from a datalist for a particular row, here is the code how you can achieve it.
1. In your data list set the selected index change event of the drop down and set the AutpPostBack Property to true.
2. Write the code as below
protected void ddlYourDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlYourDropDown= (DropDownList)sender;
//So here you got the dropdown from the datalist row
// do whatever you want
}
Once you get the particular drop down from the datalist you can do whatever you want with its value, for example, if you need to have a cascading effect of drop downs within your data list, then you can acieve it very easily as below.
protected void ddlParentDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlParentDropDown_= (DropDownList)sender;
DataListItem dataListItem = (DataListItem)ddl.Parent; // get the datalistitem you select to get the drop down to which you want to populate based on the parent drop down
DropDownList ddlChildDropDown= (DropDownList)dataListItem.FindControl("ddlChildDropDown");
ddlChildDropDown.Items.Clear();
if (ddlParentDropDown!= null && ddlChildDropDown!= null)
{
if (ddlParentDropDown.SelectedIndex != 0)
{
//populate Child drop down with parent drop down's (ddlParentDropDown) value
}
}
1. In your data list set the selected index change event of the drop down and set the AutpPostBack Property to true.
2. Write the code as below
protected void ddlYourDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlYourDropDown= (DropDownList)sender;
//So here you got the dropdown from the datalist row
// do whatever you want
}
Once you get the particular drop down from the datalist you can do whatever you want with its value, for example, if you need to have a cascading effect of drop downs within your data list, then you can acieve it very easily as below.
protected void ddlParentDropDown_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlParentDropDown_= (DropDownList)sender;
DataListItem dataListItem = (DataListItem)ddl.Parent; // get the datalistitem you select to get the drop down to which you want to populate based on the parent drop down
DropDownList ddlChildDropDown= (DropDownList)dataListItem.FindControl("ddlChildDropDown");
ddlChildDropDown.Items.Clear();
if (ddlParentDropDown!= null && ddlChildDropDown!= null)
{
if (ddlParentDropDown.SelectedIndex != 0)
{
//populate Child drop down with parent drop down's (ddlParentDropDown) value
}
}
Subscribe to:
Posts (Atom)