Saturday, April 24, 2010

OpenDatabase function gives error

Problem:
OpenDatabase function which is a standard function in VB
gives the following error







Solution:
Modify the code to

Set db = DBEngine.OpenDatabase(cd1.FileName)

VB with Access 2000

Problem :
How to make VB 6.0 work with Access 2000



Solution :
Select Microsoft DAO 3.6 Object Library in Project References

Friday, April 23, 2010

Color of Error Messages in struts 2

Problem:

I am working on struts 2.
I have one text field and have put validation (with xml)on the text field if its blank, throw an error.
But the field error I am getting is in black colour.
Does anyone have idea how to display the field error in red colour.


Solution:

U can the use the following tag in your .css Stylesheet file

.errorMessage {
color: red;
font-size: 0.8em;
}

And include this Stylesheet in the file where u have the text field.


Source : http://www.roseindia.net/struts/struts2/validations/Struts2-annotations.shtml

Thursday, April 15, 2010

How to put two S:submit button in one line, but its not working

How to put two S:submit button in one line??

Solution :

There is attribute theme in button.you have to put it as theme=”simple” and put the two button in one tr (that means one row).

Tuesday, April 6, 2010

File count VBS

I created this VB Script file to count the number of files in a folder (recursively)
for example you need to count how many C, how many .h, how many .pl etc etc...
and you need a report folder wise also..

'******************************************************************************
'---------------------------------------------------------------------------------------
'
' Name:  FileCount.vbs
' Version: 1.0
' Date:  7-7-2009
' Author:  Yogesh Gandhi
' Description: FileCount.vbs calculates the Code files (.cc, .h, .c) files in subfolders within
'   a folder and puts the folder wise summary excel workbook
' 
' This can be used on our 9.1.0 spectrum folder, to check how many files are there
'   in which folder
'   This utility requires Microsoft Excel to be present on that machine.
'   If Microsoft Excel is not installed on that machine, you can get a tab seperated summary
'   Just uncomment/comment the relevant/irrelevant code 
' It will generate a filelist.txt file in the specified folder.
'---------------------------------------------------------------------------------------
FolderToBeAnalysed = BrowseFolder( "", False )
Call CountCCAndh(FolderToBeAnalysed, false)
'**********************************************************************
Sub CountCCAndh(sFolder, bIncludeDirInCount)
Dim objFolder, objSubFolders, objFso, o, n 
Set objFso = Createobject( "Scripting.FileSystemObject" )  
Set objDialog = CreateObject( "SAFRCFileDlg.FileSave" )

'Get the file name and path from the user.
dim xlfilename
' Note: If no path is specified, the "current" directory will
'       be the one remembered from the last "SAFRCFileDlg.FileOpen"
'       or "SAFRCFileDlg.FileSave" dialog!
objDialog.FileName = "test.xls"
' Note: The FileType property is cosmetic only, it doesn't
'       automatically append the right file extension!
'       So make sure you type the extension yourself!
objDialog.FileType = "Excel file(*.xls)"
If objDialog.OpenFileSaveDlg Then
xlfilename = objDialog.FileName
End If

set objXL = CreateObject( "Excel.Application" )
objXL.Visible = False
objXL.WorkBooks.Add
dim pcount
dim objNewFile
'Set objNewFile = objFso.CreateTextFile(sFolder & "\filelist.txt", True)  
Set objFolder = objFso.GetFolder(sFolder) 
ObjXL.ActiveSheet.Cells(1,1).Value = "Folder name"
ObjXL.ActiveSheet.Cells(1,2).Value = "C/CC/h files"
ObjXL.ActiveSheet.Cells(1,3).Value = "java files"
ObjXL.ActiveSheet.Cells(1,4).Value = "JSP files"
ObjXL.ActiveSheet.Cells(1,5).Value = "JS files"
ObjXL.ActiveSheet.Cells(1,6).Value = "XML files"
ObjXL.ActiveSheet.Cells(1,7).Value = "WSDL files"
ObjXL.ActiveSheet.Cells(1,8).Value = "PL files"
ObjXL.ActiveSheet.Cells(1,9).Value = "BAT files"
ObjXL.ActiveSheet.Cells(1,10).Value = "SH files"
ObjXL.ActiveSheet.Cells(1,11).Value = "RPT files"
ObjXL.ActiveSheet.Cells(1,12).Value = "CUS files"
ObjXL.ActiveSheet.Cells(1,13).Value = "CFG files"

pcount = 2
For Each o In objFolder.SubFolders 
' objNewFile.Write(o.Name)
' objNewFile.Write(vbTab)
' objNewFile.WriteLine(cntFiles(o, false))
ObjXL.ActiveSheet.Cells(pcount,1).Value = o.Name
ObjXL.ActiveSheet.Cells(pcount,2).Value = cntCFiles(o, false)
ObjXL.ActiveSheet.Cells(pcount,3).Value = cntFiles(o, false, ".java")
ObjXL.ActiveSheet.Cells(pcount,4).Value = cntFiles(o, false, ".jsp")
ObjXL.ActiveSheet.Cells(pcount,5).Value = cntFiles(o, false, ".js")
ObjXL.ActiveSheet.Cells(pcount,6).Value = cntFiles(o, false, ".xml")
ObjXL.ActiveSheet.Cells(pcount,7).Value = cntFiles(o, false, ".wsdl")
ObjXL.ActiveSheet.Cells(pcount,8).Value = cntFiles(o, false, ".pl")
ObjXL.ActiveSheet.Cells(pcount,9).Value = cntFiles(o, false, ".bat")
ObjXL.ActiveSheet.Cells(pcount,10).Value = cntFiles(o, false, ".sh")
ObjXL.ActiveSheet.Cells(pcount,11).Value = cntFiles(o, false, ".rpt")
ObjXL.ActiveSheet.Cells(pcount,12).Value = cntFiles(o, false, ".cus")
ObjXL.ActiveSheet.Cells(pcount,13).Value = cntFiles(o, false, ".cfg")

pcount = pcount + 1
Next 

'Finally close the workbook
ObjXL.ActiveWorkbook.SaveAs(xlfilename)
ObjXL.Application.Quit
Set ObjXL = Nothing 
msgbox xlfilename & " Saved"
End Sub
'***********************************************************************************
Function cntFiles( strFolder, bIncludeDirInCount, ext ) 
Dim objFolder, objSubFolders, objFso, o, n
On Error Resume Next
cntFiles = -1
Set objFso = Createobject( "Scripting.FileSystemObject" ) 
Set objFolder = objFso.GetFolder(strFolder) 
If( Err.Number <> 0 ) Then 
Exit Function 
End If 
'n = objFolder.files.count 
for each fl in ObjFolder.files
if Right(fl.name, len(ext))=ext then
n = n + 1
end if
next
Set objSubFolders = objFolder.SubFolders 
For Each o In objSubFolders 
n = n + cntFiles( o, bIncludeDirInCount, ext ) 
If( bIncludeDirInCount ) Then 
n = n + 1 
End If 
Next
Set objSubFolders = Nothing 
Set objFolder = Nothing
cntFiles = n 
End Function
'*************************************************************************************************
Function cntCFiles( strFolder, bIncludeDirInCount ) 
Dim objFolder, objSubFolders, objFso, o, n
On Error Resume Next
cntCFiles = -1
Set objFso = Createobject( "Scripting.FileSystemObject" ) 
Set objFolder = objFso.GetFolder(strFolder) 
If( Err.Number <> 0 ) Then 
Exit Function 
End If 
'n = objFolder.files.count 
for each fl in ObjFolder.files
if Right(fl.name, 3)=".cc" or Right(fl.name,2) = ".h" or Right(fl.name, 2) = ".c" then
n = n + 1
end if
next
Set objSubFolders = objFolder.SubFolders 
For Each o In objSubFolders 
n = n + cntCFiles( o, bIncludeDirInCount ) 
If( bIncludeDirInCount ) Then 
n = n + 1 
End If 
Next
Set objSubFolders = Nothing 
Set objFolder = Nothing
cntCFiles = n 
End Function
'**********************************************************************************************************
Function cntJavaFiles( strFolder, bIncludeDirInCount ) 
Dim objFolder, objSubFolders, objFso, o, n
On Error Resume Next
cntJavaFiles = -1
Set objFso = Createobject( "Scripting.FileSystemObject" ) 
Set objFolder = objFso.GetFolder(strFolder) 
If( Err.Number <> 0 ) Then 
Exit Function 
End If 
'n = objFolder.files.count 
for each fl in ObjFolder.files
if Right(fl.name, 5)=".java" then
n = n + 1
end if
next
Set objSubFolders = objFolder.SubFolders 
For Each o In objSubFolders 
n = n + cntJavaFiles( o, bIncludeDirInCount ) 
If( bIncludeDirInCount ) Then 
n = n + 1 
End If 
Next
Set objSubFolders = Nothing 
Set objFolder = Nothing
cntJavaFiles = n 
End Function
'***********************************************************************************************
Function BrowseFolder( myStartLocation, blnSimpleDialog )
' This function generates a Browse Folder dialog
' and returns the selected folder as a string.
'
' Arguments:
' myStartLocation   [string]  start folder for dialog, or "My Computer", or
'                             empty string to open in "Desktop\My Documents"
' blnSimpleDialog   [boolean] if False, an additional text field will be
'                             displayed where the folder can be selected
'                             by typing the fully qualified path
'
' Returns:          [string]  the fully qualified path to the selected folder
'
' Based on the Hey Scripting Guys article
' "How Can I Show Users a Dialog Box That Only Lets Them Select Folders?"
' http://www.microsoft.com/technet/scriptcenter/resources/qanda/jun05/hey0617.mspx
'
' Function written by Rob van der Woude
' http://www.robvanderwoude.com
Const MY_COMPUTER   = &H11&
Const WINDOW_HANDLE = 0 ' Must ALWAYS be 0
Dim numOptions, objFolder, objFolderItem
Dim objPath, objShell, strPath, strPrompt
' Set the options for the dialog window
strPrompt = "Select a folder:"
If blnSimpleDialog = True Then
numOptions = 0      ' Simple dialog
Else
numOptions = &H10&  ' Additional text field to type folder path
End If

' Create a Windows Shell object
Set objShell = CreateObject( "Shell.Application" )
' If specified, convert "My Computer" to a valid
' path for the Windows Shell's BrowseFolder method
If UCase( myStartLocation ) = "MY COMPUTER" Then
Set objFolder = objShell.Namespace( MY_COMPUTER )
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
Else
strPath = myStartLocation
End If
Set objFolder = objShell.BrowseForFolder( WINDOW_HANDLE, strPrompt, _
numOptions, strPath )
' Quit if no folder was selected
If objFolder Is Nothing Then
BrowseFolder = ""
Exit Function
End If
' Retrieve the path of the selected folder
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
' Return the path of the selected folder
BrowseFolder = objPath
End Function 

Friday, April 2, 2010

Get the size of subfolders in a folder

'--------------------------------------------------------------------------------
'
' Name:  getfoldersize.vbs
' Version: 1.0
' Date:  7-5-2002
' Author:  Hans van der Zaag
' Description: getfoldersize.vbs calculates the size of all subfolders within
'   a folder and sorts this data in an excel workbook
' 
'----------------------------------------------------------------------------------
'rootfolder = Inputbox("Enter directory/foldername: " & _
'                         chr(10) & chr(10) & "(i.e. C:\Program Files or " & _
'                        "\\Servername\C$\Program Files)" & chr(10) & chr(10), _
'                       "Getfoldersize", "C:\Program Files")
outputfile = "d:\foldersize_" & Day(now) & Month(now) & Year(now) & ".xls"

'Parse the passed parameters.
const FIRST_ITEM=0
dim LAST_ITEM
dim args_index
dim command_line_args
set command_line_args = wscript.Arguments
'Check if any Arguments have been passed to our script.
'rootfolder=command_line_args(FIRST_ITEM)
rootfolder = BrowseFolder( "", False )
Set fso = CreateObject("scripting.filesystemobject")
if fso.fileexists(outputfile) then fso.deletefile(outputfile)
'Create Excel workbook
set objXL = CreateObject( "Excel.Application" )
objXL.Visible = False
objXL.WorkBooks.Add
'Counter 1 for writing in cell A1 within the excel workbook
icount = 1
'Run checkfolder
CheckFolder (FSO.getfolder(rootfolder))
Sub CheckFolder(objCurrentFolder)
For Each objFolder In objCurrentFolder.SubFolders
FolderSize = objFolder.Size
Tmp = (FormatNumber(FolderSize, 0, , , 0)/1024)/1024
ObjXL.ActiveSheet.Cells(icount,1).Value = objFolder.Path
ObjXL.ActiveSheet.Cells(icount,2).Value = Tmp
'Wscript.Echo Tmp & " " & objFolder.Path
'raise counter with 1 for a new row in excel 
icount = icount + 1
Next
'Recurse through all of the folders
'       For Each objNewFolder In objCurrentFolder.subFolders
'               CheckFolder objNewFolder
'       Next

End Sub
if icount=1 then 
MsgBox "No Subfolders are present in this folder", vbInformation, "No subfolders"
WScript.Quit
end if
'sort data in excel
objXL.ActiveCell.CurrentRegion.Select
objXL.Selection.Sort objXL.Worksheets(1).Range("B1"), _
2, _
, _
, _
, _
, _
, _
0, _
1, _
False, _
1
'Lay out for Excel workbook 
objXL.Range("A1").Select
objXL.Selection.EntireRow.Insert
objXL.Selection.EntireRow.Insert
objXL.Selection.EntireRow.Insert
objXL.Selection.EntireRow.Insert
objXL.Selection.EntireRow.Insert
objXL.Columns(1).ColumnWidth = 60
objXL.Columns(2).ColumnWidth = 15
objXL.Columns(2).NumberFormat = "#,##0.0"
objXL.Range("B1:B1").NumberFormat = "d-m-yyyy"
objXL.Range("A1:B5").Select
objXL.Selection.Font.Bold = True
objXL.Range("A1:B3").Select
objXL.Selection.Font.ColorIndex = 5
objXL.Range("A1:A1").Select
objXL.Selection.Font.Italic = True
objXL.Selection.Font.Size = 16
ObjXL.ActiveSheet.Cells(1,1).Value = "Survey FolderSize " 
ObjXL.ActiveSheet.Cells(1,2).Value = Day(now) & "-" & Month(now) & "-"& Year(now)
ObjXL.ActiveSheet.Cells(3,1).Value = UCase(rootfolder)
ObjXL.ActiveSheet.Cells(5,1).Value = "Folder"
ObjXL.ActiveSheet.Cells(5,2).Value = "Total (MB)"

'Finally close the workbook
ObjXL.ActiveWorkbook.SaveAs(outputfile)
ObjXL.Application.Quit
Set ObjXL = Nothing
'Message when finished
Set WshShell = CreateObject("WScript.Shell")
Finished = Msgbox ("Script executed successfully, results can be found in " & Chr(10) _
& outputfile & "." & Chr(10) & Chr(10) _
& "Do you want to view the results now?", 65, "Script executed successfully!")
if Finished = 1 then WshShell.Run "excel " & outputfile
'**************************************************************************
Function BrowseFolder( myStartLocation, blnSimpleDialog )
' This function generates a Browse Folder dialog
' and returns the selected folder as a string.
'
' Arguments:
' myStartLocation   [string]  start folder for dialog, or "My Computer", or
'                             empty string to open in "Desktop\My Documents"
' blnSimpleDialog   [boolean] if False, an additional text field will be
'                             displayed where the folder can be selected
'                             by typing the fully qualified path
'
' Returns:          [string]  the fully qualified path to the selected folder
'
' Based on the Hey Scripting Guys article
' "How Can I Show Users a Dialog Box That Only Lets Them Select Folders?"
' http://www.microsoft.com/technet/scriptcenter/resources/qanda/jun05/hey0617.mspx
'
' Function written by Rob van der Woude
' http://www.robvanderwoude.com
Const MY_COMPUTER   = &H11&
Const WINDOW_HANDLE = 0 ' Must ALWAYS be 0
Dim numOptions, objFolder, objFolderItem
Dim objPath, objShell, strPath, strPrompt
' Set the options for the dialog window
strPrompt = "Select a folder:"
If blnSimpleDialog = True Then
numOptions = 0      ' Simple dialog
Else
numOptions = &H10&  ' Additional text field to type folder path
End If

' Create a Windows Shell object
Set objShell = CreateObject( "Shell.Application" )
' If specified, convert "My Computer" to a valid
' path for the Windows Shell's BrowseFolder method
If UCase( myStartLocation ) = "MY COMPUTER" Then
Set objFolder = objShell.Namespace( MY_COMPUTER )
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
Else
strPath = myStartLocation
End If
Set objFolder = objShell.BrowseForFolder( WINDOW_HANDLE, strPrompt, _
numOptions, strPath )
' Quit if no folder was selected
If objFolder Is Nothing Then
BrowseFolder = ""
Exit Function
End If
' Retrieve the path of the selected folder
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
' Return the path of the selected folder
BrowseFolder = objPath
End Function

How to send e-mails using Java

How to send e-mails using java

Just visit the link

http://java.sun.com/products/javamail/


Java Beans Activation Framework is available at

http://java.sun.com/beans/glasgow/jaf.html

If your SMTP Server need you to do Authentication using Username and Password before Sending out mail, download the complete code from here SendMailUsingAuthentication.java

Also visit the following URL
http://www.javacommerce.com/displaypage.jsp?name=javamail.sql&id=18274

I feel all this information is sufficient for sending mails

Wednesday, March 31, 2010

Internet sharing without hub/router.....

THOUGH I HAVE NOT TRIED IT BY MYSELF. GOT THIS INFORMATION FROM A FRIEND....CHECK THIS OUT....


To share Internet Connection between different systems connected in an ad-Hoc wireless network without any router/hub….
Follow these steps…
Prerequisite:
All the systems to be connected has to be in an ad-hoc wireless network (to create one u can run create home wireless network wizard and follow ….)

For Host computer…
1. Host computer : computer i.e connected to the internet directly through modem…(or so…)
Generally configured through Lan (has its ip/dns server settings provided by Service providers….)(leave it as such)
2. Run ( create a small home/office network wizard ) in network connections panel…..(find it in control panel)
3. Follow the steps in it…
4. In internet connection setting step
Check->( tick it)this computer connects directly to the internet(for Host PC)
5. Make sure u all have same home network like (MSHOME or whatever ur pC’s home name is…)
6. Next step (Important )Wizard asks u to create a disk where setting will be stored……
so save the settings in a pen-Drive and finish the wizard .
Now settings is nothing but a netsetup.exe file saved in Pen-D….
What to do next….
Now the host part is done….
For Shared Systems…

1.Insert the drive having settings file….
2.run it…(don’t think too much…)
Just check In internet connection setting step
Check->( tick it)
(For shared PC’s in n/w) this computer connects to the internet using other computer
And have home network as MSHOME or whatever value u gave in….step
3.
And u r done …….
--------------------------------------
All the systems will now have access to internet …… (nJoy!)

Tuesday, March 16, 2010

Problem making DSN with SQL server from other machine.

I faced this problem when I was trying to connect to SQL server 2005 from another machine.

The error message said, that SQL server does not exist or access denied.

Solution :

1. Start SQL Server Configuration Manager
2. Expand SQL Server network configuration
3. Select Protocols for MSSQLSERVER
4. Double click TCP/IP in the right pane.
5. Change enabled to true
6. Click IP Addresses Tab and change the IP address to the IP address of the client.

Start SQL Server Area Configuration
Select Surface area configuration for services and connections.
Go to Database Engine -> Remote Connections and verify that remote connections are enabled. (The correct radio button is selected)

Monday, March 15, 2010

Can wait be resume without Notify??

A thread can also wake up without being notified, interrupted, or timing out, a so-called spurious wakeup. While this will rarely occur in practice, applications must guard against it by testing for the condition that should have caused the thread to be awakened, and continuing to wait if the condition is not satisfied. In other words, waits should always occur in loops, like this one:
synchronized (obj) {

while (someCondition()==false)

obj.wait(timeout);

... // Perform action appropriate to condition

}

Saturday, February 27, 2010

Reading data from Internet

This URL seems to be pretty useful for this purpose.

http://java.sys-con.com/node/39248

Always use BufferedReader while reading InputStreams. Not using BufferedReader would lead to corrupt data and may not give correct results.

Code snippet is as given below :


HttpURLConnection hpCon;
hp = new URL(url);
hpCon = (HttpURLConnection)hp.openConnection();
InputStream in = hpCon.getInputStream();
InputStreamReader inStream = new InputStreamReader(in);
BufferedReader input = new BufferedReader(inStream);

String tempString="";
while(true)
{

tempString = input.readLine();
if(tempString == null) break;
output.append(tempString);
}
hp = null;
hpCon = null;

Tuesday, February 9, 2010

Not all named parameters have been set

Problem : I am getting one exception while trying to execute a query using hibernate

org.hibernate.QueryException: Not all named parameters have been set: [] [from FunctionPointDO f where f.workPackage='work package : id1' and f.workPackageIdentifier='work : ref1' and f.startDate='03-Jan-2010' and f.goLiveDate='04-Feb-2010' and f.id!='1000100']
at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:114)
at org.hibernate.impl.AbstractQueryImpl.verifyParameters(AbstractQueryImpl.java:101)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:70)
at com.bt.fp.server.Utils.Utils.listAndCast(Unknown Source)
at com.bt.fp.server.database.dao.FunctionPointDAO.isDuplicate(Unknown Source)
at com.bt.fp.server.AddUpdateFPData.doPost(Unknown Source)

It seems that this error is due to the “:” which is used as a value in f.workPackage='work package : id1' and f.workPackageIdentifier='work : ref1'. I checked on net and hibernate considers anything starting with colon (: ) as a variable, and here id1 and ref1 are treated as variable whose value is not set anywhere. This error comes only when colon has spaces around it.

How can I escape colon. As these values are entered by users, I don’t have any control over whatever input they provide.