Click here to Skip to main content
15,895,538 members
Home / Discussions / Database
   

Database

 
AnswerRe: How I can debug a dll file Pin
Andre.Net23-Jun-05 0:31
Andre.Net23-Jun-05 0:31 
Questionmaster.dbo.spt_values means?????? Pin
under281122-Jun-05 23:23
under281122-Jun-05 23:23 
QuestionList All Triggers in Database ? Pin
Andre.Net22-Jun-05 22:20
Andre.Net22-Jun-05 22:20 
GeneralADO.NET --> Dataset... Pin
Khanh Duy22-Jun-05 16:32
Khanh Duy22-Jun-05 16:32 
GeneralRe: ADO.NET --> Dataset... Pin
Sindhu Saravanan28-Jun-05 4:03
sussSindhu Saravanan28-Jun-05 4:03 
GeneralMicrosoft.JET Engine- need help Pin
...---...22-Jun-05 15:50
...---...22-Jun-05 15:50 
GeneralObject must implement IConvertible Pin
gharryh22-Jun-05 8:05
gharryh22-Jun-05 8:05 
GeneralBARCODE (Code39) Pin
OMalleyW22-Jun-05 7:42
OMalleyW22-Jun-05 7:42 
Hello,
Have you ever needed to create a Barcode but all you could find are
articles that use graphics or some font package?

Well Here is a script that will allow you to use SQL Server and HTML
to create the BarCode. You will not need anything special other then
the ability to render the HTML.

--------------------------------------------------
SQL CODE
<br />
--<br />
-- Create the Function first<br />
--<br />
CREATE FUNCTION F_TranslateToCode39(@StringToTranslate CHAR(1))<br />
/****************************************************************<br />
This function will be called by F_GenerateBarCode to generate the<br />
HTML string needed to represent the Character.<br />
****************************************************************/<br />
RETURNS VARCHAR(2000)<br />
AS<br />
<br />
BEGIN<br />
<br />
DECLARE<br />
	 @ReturnString	VARCHAR(2000)<br />
	,@RawCode	VARCHAR(12)<br />
	,@Counter	INT<br />
--<br />
-- First get the Raw representation of the character<br />
-- this will tell us what color the lines need to be<br />
-- for more references on this please refer to the following<br />
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br />
-- http://www.barcodeisland.com/code39.phtml#Example<br />
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX<br />
SET @RawCode = (CASE UPPER(@StringToTranslate)<br />
		WHEN '0' THEN '101001101101'<br />
		WHEN '1' THEN '110100101011'<br />
		WHEN '2' THEN '101100101011'<br />
		WHEN '3' THEN '110110010101'<br />
		WHEN '4' THEN '101001101011'<br />
		WHEN '5' THEN '110100110101'<br />
		WHEN '6' THEN '101100110101'<br />
		WHEN '7' THEN '101001011011'<br />
		WHEN '8' THEN '110100101101'<br />
		WHEN '9' THEN '101100101101'<br />
		WHEN 'A' THEN '110101001011'<br />
		WHEN 'B' THEN '101101001011'<br />
		WHEN 'C' THEN '110110100101'<br />
		WHEN 'D' THEN '101011001011'<br />
		WHEN 'E' THEN '110101100101'<br />
		WHEN 'F' THEN '101101100101'<br />
		WHEN 'G' THEN '101010011011'<br />
		WHEN 'H' THEN '110101001101'<br />
		WHEN 'I' THEN '101101001101'<br />
		WHEN 'J' THEN '101011001101'<br />
		WHEN 'K' THEN '110101010011'<br />
		WHEN 'L' THEN '101101010011'<br />
		WHEN 'M' THEN '110110101001'<br />
		WHEN 'N' THEN '101011010011'<br />
		WHEN 'O' THEN '110101101001'<br />
		WHEN 'P' THEN '101101101001'<br />
		WHEN 'Q' THEN '101010110011'<br />
		WHEN 'R' THEN '110101011001'<br />
		WHEN 'S' THEN '101101011001'<br />
		WHEN 'T' THEN '101011011001'<br />
		WHEN 'U' THEN '110010101011'<br />
		WHEN 'V' THEN '100110101011'<br />
		WHEN 'W' THEN '110011010101'<br />
		WHEN 'X' THEN '100101101011'<br />
		WHEN 'Y' THEN '110010110101'<br />
		WHEN 'Z' THEN '100110110101'<br />
		WHEN ' ' THEN '100110101101'<br />
		WHEN '*' THEN '100101101101'<br />
		WHEN '%' THEN '101001001001'<br />
		WHEN '-' THEN '100101011011'<br />
		ELSE '' END)<br />
<br />
<br />
--<br />
-- Now that we have the Raw data check it<br />
--<br />
SELECT 	 @Counter = 0<br />
 	,@ReturnString = ''<br />
--<br />
-- Test each character for color<br />
--	<br />
WHILE @Counter < LEN(@RawCode)+1 BEGIN<br />
	--<br />
	-- <br />
	--<br />
	IF (SUBSTRING(@RawCode,@Counter,1) = '0') BEGIN<br />
<br />
		SELECT @ReturnString = @ReturnString + '<TD style="background-color:White;height:7mm;width:0.3mm;"></TD>'<br />
		GOTO COUNT_IT<br />
	END <br />
	IF (SUBSTRING(@RawCode,@Counter,1) = '1') BEGIN<br />
<br />
		SELECT @ReturnString = @ReturnString + '<TD style="background-color:Black;height:7mm;width:0.3mm;"></TD>'<br />
		GOTO COUNT_IT<br />
	END<br />
	--<br />
	--<br />
	COUNT_IT:<br />
	SET @Counter = @Counter + 1<br />
	--<br />
	--<br />
END<br />
--<br />
-- Add Character Seperator REQUIRED!<br />
--<br />
SELECT @ReturnString = @ReturnString + '<TD style="background-color:White;height:7mm;width:0.4mm;"></TD>'<br />
--<br />
RETURN @ReturnString<br />
END<br />
GO<br />
--<br />
-- Now for the procedure that makes it all happen<br />
--<br />
CREATE PROCEDURE spGenerateHTMLBarCodeString<br />
 @StringToEncode	VARCHAR(50)<br />
,@ResultMessage		VARCHAR(200)  = '' OUTPUT<br />
AS<br />
DECLARE<br />
	 @ReturnCode	INT<br />
	,@Counter		INT<br />
	,@CompleteString	VARCHAR(60)<br />
--<br />
DECLARE @BarcodeTable	TABLE<br />
(BarcodeHTML	VARCHAR(2000) NOT NULL DEFAULT '')<br />
--<br />
SET NOCOUNT ON<br />
--<br />
SELECT   @CompleteString = '*' + LTRIM(RTRIM(@StringToEncode)) + '*'<br />
	,@Counter = 1<br />
--<br />
INSERT INTO @BarcodeTable<br />
(BarcodeHTML)<br />
VALUES<br />
('<TABLE CELLPADDING="0" CELLSPACING="0"><TR>')<br />
--<br />
-- trim the string<br />
SET @CompleteString = LTRIM(RTRIM(@CompleteString))<br />
--<br />
WHILE @Counter < LEN(@CompleteString)+1 BEGIN<br />
	--<br />
	--<br />
	INSERT INTO @BarcodeTable<br />
	(BarcodeHTML)<br />
	SELECT dbo.F_TranslateToCode39(SUBSTRING(@CompleteString,@Counter,1))<br />
	--<br />
	--<br />
	SET @Counter = @Counter + 1<br />
	--<br />
	--<br />
END<br />
--<br />
INSERT INTO @BarcodeTable<br />
(BarcodeHTML)<br />
VALUES<br />
('</TR></TABLE>')<br />
--<br />
--<br />
SELECT BarcodeHTML FROM @BarcodeTable<br />
<br />
IF (@@ERROR != 0) BEGIN<br />
	SET @ReturnCode = 1<br />
	GOTO END_PROCEDURE<br />
END<br />
<br />
SET @ReturnCode = 0<br />
<br />
END_PROCEDURE:<br />
	SET @ResultMessage = (CASE @ReturnCode<br />
		WHEN 0 THEN 'OK'<br />
		WHEN 1 THEN 'An error occured generating the Barcode you requested' +<br />
		'.Please contact Information Systems (1).'<br />
		ELSE<br />
		'An unexpected error has occured, Error Number ' +<br />
		CAST(@ReturnCode AS VARCHAR(5)) + '.'<br />
		END)<br />
<br />
RETURN @ReturnCode<br />
GO<br />

--------------------------------------------------

Now here is the C# Code for the Web Form
You will need a Textbox, Button, Table and a
connection to the Database where you have created
the above procedure.
--------------------------------------------------
private void Button1_Click(object sender, System.EventArgs e)
{
TableRow ANewRow = new TableRow();
TableCell BarcodeCell = new TableCell();
//
Label BarCodeLabel = new Label();
//
BarCodeLabel.Text = this.GenerateBarCode(this.txtboxStringToConvert.Text);
BarcodeCell.Controls.Add(BarCodeLabel);
//
ANewRow.Cells.Add(BarcodeCell);
this.tblBarcodeTable.Rows.Add(ANewRow);
}


private string GenerateBarCode(string StringToTest)
{
string returnValue = "";

this.spGenerateHTMLBarCodeString.Parameters["@StringToEncode"].Value = StringToTest;
SqlDataReader BarCodeReader = this.spGenerateHTMLBarCodeString.ExecuteReader();
if (BarCodeReader.HasRows)
{
while (BarCodeReader.Read())
{
returnValue += BarCodeReader["BarcodeHTML"].ToString();
}
}
BarCodeReader.Close();
BarCodeReader = null;
return returnValue;
}

--------------------------------------------------

Well that's it. Now you should be able to generate Barcodes.

Please let me know if you have found this interesting or have
any changes to add that would make it better.


Thanks
William O'Malley
GeneralAny Comments? Pin
OMalleyW23-Jun-05 3:51
OMalleyW23-Jun-05 3:51 
GeneralRe: BARCODE (Code39) Pin
Mike Dimmick24-Jun-05 2:38
Mike Dimmick24-Jun-05 2:38 
GeneralRe: BARCODE (Code39) Pin
OMalleyW24-Jun-05 4:12
OMalleyW24-Jun-05 4:12 
GeneralRe: BARCODE (Code39) Pin
Ian Darling29-Jun-05 23:22
Ian Darling29-Jun-05 23:22 
GeneralRe: BARCODE (Code39) Pin
OMalleyW30-Jun-05 10:58
OMalleyW30-Jun-05 10:58 
GeneralRe: BARCODE (Code39) Pin
Ian Darling30-Jun-05 12:15
Ian Darling30-Jun-05 12:15 
GeneralRe: BARCODE (Code39) Pin
Ian Darling30-Jun-05 12:54
Ian Darling30-Jun-05 12:54 
GeneralRe: BARCODE (Code39) Pin
OMalleyW1-Jul-05 1:55
OMalleyW1-Jul-05 1:55 
GeneralADO.NET - Best way to use the mighty SELECT Pin
BinaryHead22-Jun-05 3:53
BinaryHead22-Jun-05 3:53 
GeneralRe: ADO.NET - Best way to use the mighty SELECT Pin
Colin Angus Mackay22-Jun-05 6:03
Colin Angus Mackay22-Jun-05 6:03 
GeneralRe: ADO.NET - Best way to use the mighty SELECT Pin
david cohoon22-Jun-05 8:06
david cohoon22-Jun-05 8:06 
GeneralRe: ADO.NET - Best way to use the mighty SELECT Pin
BinaryHead22-Jun-05 22:25
BinaryHead22-Jun-05 22:25 
Generalreplication: remote login error Pin
NickKnife22-Jun-05 2:02
NickKnife22-Jun-05 2:02 
GeneralSQL Server 2000 CE Edition... Pin
Jan van den Baard22-Jun-05 1:54
professionalJan van den Baard22-Jun-05 1:54 
GeneralSQL SERVER 2005 INSTED OF Trigger Pin
Yaakov Davis22-Jun-05 1:28
Yaakov Davis22-Jun-05 1:28 
GeneralSQL Server Manager 2005 animated wait thingie Pin
nxtwothou21-Jun-05 10:37
nxtwothou21-Jun-05 10:37 
GeneralConnection Pooling Pin
anju21-Jun-05 8:30
anju21-Jun-05 8:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.