Sunday, May 25, 2008

Java: Passing arrays to a stored procedure with PLSQL Table Type

Not all PL/SQL arrays can be direcly accessed using JDBC. Procedures or Functions that take arrays and are declared inside packages instead of with “CREATE TYPE” can not be called using JDBC. This is a limitation of Oracle.
Approach to solve this issue:
1. Write an additonal wrapper procedure that converts an array created with CREATE TYPE into the format required by your procedure
If you can not change the procedure itself or it is already used by a large base of existing code you may have to go with option 2 of writing an additional wrapper procedure that takes parameters usable by JDBC:

Original Code:
Create or Replace Package tms_user_autocode IS
Type DeriveValuesREC IS RECORD (
DefLevelId number(10),
ColumnName VARCHAR2(30),
ValueText tms_dict_contents.term%TYPE,
ClassificationCode VARCHAR2(1));

Type DeriveValuesTAB is TABLE of DeriveValuesREC INDEX BY BINARY_INTEGER;

FUNCTION ClassifyTerm(
pDefDictionaryId IN NUMBER
pDefDomainId IN NUMBER
pTerm IN VARCHAR2
pSourceTermId IN NUMBER
pOccurrenceId IN NUMBER
pSourceTermAltKey IN VARCHAR2
pNoOmissionFlag IN VARCHAR2
pDefIntegrationKey IN VARCHAR2
pDefInstanceName IN VARCHAR2
pXArea IN NUMBER
pExtValue1 IN VARCHAR2
pExtValue2 IN VARCHAR2
pExtValue3 IN VARCHAR2
pExtValue4 IN VARCHAR2
pExtValue5 IN VARCHAR2
pExtValue6 IN VARCHAR2
pExtValue7 IN VARCHAR2
pExtValue8 IN VARCHAR2
pOmissionStatus IN OUT VARCHAR2
pOmissionOwner IN OUT VARCHAR2
pActionText IN OUT VARCHAR2
pVTAid OUT NUMBER
pSearchID OUT NUMBER
pDeriveValues IN OUT tms_user_autocode.DeriveValesTAB) RETURN PLS_INTEGER

END tms_user_autocode;
Wrapper Procedure:

CREATE OR REPLACE
PROCEDURE CTRM_tms_user_autocode
(jDefDictionaryId IN NUMBER,
jDefDomainId IN NUMBER,
jTerm IN VARCHAR2,
jSourceTermId IN NUMBER,
jOccurrenceId IN NUMBER,
jSourceTermAltKey IN VARCHAR2,
jNoOmissionFlag IN VARCHAR2,
jDefIntegrationKey IN VARCHAR2,
jDefInstanceName IN VARCHAR2,
jXArea IN NUMBER,
jExtValue1 IN VARCHAR2,
jExtValue2 IN VARCHAR2,
jExtValue3 IN VARCHAR2,
jExtValue4 IN VARCHAR2,
jExtValue5 IN VARCHAR2,
jExtValue6 IN VARCHAR2,
jExtValue7 IN VARCHAR2,
jExtValue8 IN VARCHAR2,
jOmissionStatus IN OUT VARCHAR2,
jOmissionOwner IN OUT VARCHAR2,
jActionText IN OUT VARCHAR2,
jSearchID OUT NUMBER,
jVTAid OUT NUMBER,
jDeriveValues IN OUT CTRM_DeriveValuesTAB
returnValue OUT Number) AS

l_array tms_user_autocode.DeriveValuesTAB;
l_record tms_user_autocode.DeriveValuesREC;

BEGIN
– Load our JDBC table into the PL/SQL one…
l_array.delete;
FOR i IN jDeriveValues.FIRST
.. jDeriveValues.LAST LOOP
l_record := NULL;

l_record.DefLevelId := jDeriveValues(i).DefLevelId;
l_record.ColumnName := jDeriveValues(i).ColumnName;
l_record.ValueText := jDeriveValues(i).ValueText;
l_record.ClassificationCode := jDeriveValues(i).ClassificationCode;
l_array(i) := l_record;

END LOOP;
returnValue := tms.TMS_user_AUTOCODE.ClassifyTerm(
jDefDictionaryId
, jDefDomainId
, jTerm
, jSourceTermId
, jOccurrenceId
, jSourceTermAltKey
, jNoOmissionFlag
, jDefIntegrationKey
, jDefInstanceName
, jXArea
, jExtValue1
, jExtValue2
, jExtValue3
, jExtValue4
, jExtValue5
, jExtValue6
, jExtValue7
, jExtValue8
, jOmissionStatus
, jOmissionOwner
, jActionText
, jSearchId
, jVTAid
,l_array
);

FOR i IN l_array.FIRST .. l_array.LAST LOOP
jDeriveValues(i).DefLevelId := l_array(i).DefLevelId;
jDeriveValues(i).ColumnName := l_array(i).ColumnName;
jDeriveValues(i).ValueText := l_array(i).ValueText;
jDeriveValues(i).ClassificationCode := l_array(i).ClassificationCode;

END LOOP;

END;

Java program :

import java.sql.*;

import oracle.jdbc.OracleTypes;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;

public class Test {
public static void main(String[] args) throws SQLException {
CallableStatement proc = null;
try {
Connection conn=null;
DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
//Establish a connection
conn = DriverManager.getConnection
(”jdbc:oracle:oci8:@123.WORLD”,
“scott”, “tiger);
System.out.println(”connection success0″);

int DictId = 8;
int DomainId = 1;
String Term = “BLOOD”;
int SourceId=0;
String pOccurrenceId=”0″;
String pSourceTermAltKey =”";
String pDefIntegrationKey=”CTRM”;
String pDefInstanceName=”OCP451.TEST.COM”;
int pXArea=1;
String Flag=”N”;
String pExtValue1=”";
String pExtValue2=”";
String pExtValue3=”";
String pExtValue4=”";
String pExtValue5=”";
String pExtValue6=”";
String pExtValue7=”";
String pExtValue8=”";
String ActionText=”";
int returnValue=0;
int sid=0;
String oStat=”";
String oOwner=”";
//String xsystem=”";
int vtaid=0;


// create the ARRAY by calling the constructor


System.out.println(”connection success1.1″);
//First, declare the Object arrays that will store the data.
Object [] p1recobj = {new Integer(811),”TERM”,”",”"};
Object [] p2recobj = {new Integer(811),”DICT_CONTENT_CODE”,”",”"};
Object [] p3recobj = {new Integer(812),”TERM”,”",”"};
Object [] p4recobj = {new Integer(812),”DICT_CONTENT_CODE”,”",”"};
System.out.println(”connection success1.2″);
//Declare the Object Arrays to hold the STRUCTS.
Object [] p1arrobj;
//Object [] p2arrobj;
System.out.println(”connection success1.3″);
// Declare two descriptors, one for the ARRAY TYPE
// and one for the OBJECT TYPE.
StructDescriptor desc1 = StructDescriptor.createDescriptor(”CTRM_DERIVEVALUESREC”, conn);
ArrayDescriptor desc2 = ArrayDescriptor.createDescriptor(”CTRM_DERIVEVALUESTAB”, conn);
System.out.println(”connection success1.4″);
// Create the STRUCT objects to associate the host objects
// with the database records.
STRUCT p1struct = new STRUCT(desc1,conn,p1recobj);
STRUCT p2struct = new STRUCT(desc1,conn,p2recobj);
STRUCT p3struct = new STRUCT(desc1,conn,p3recobj);
STRUCT p4struct = new STRUCT(desc1,conn,p4recobj);
System.out.println(”connection success1.5″);
// Initialize the Input array object - to an array of STRUCT Objects.
p1arrobj = new Object []{p1struct,p2struct,p3struct,p4struct};
System.out.println(”connection success1.6″);
// Set up the ARRAY object.
ARRAY p1arr = new ARRAY(desc2,conn,p1arrobj);
// ARRAY p2arr;
System.out.println(”connection success1.7″);
proc = conn.prepareCall(”{ call CTRM_tms_user_autocode(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}”);
System.out.println(”connection success1.8″);
proc.setInt(1, DictId);
proc.setInt(2, DomainId);
proc.setString(3, Term);
proc.setInt(4, SourceId);
proc.setString(5, pOccurrenceId);
proc.setString(6, pSourceTermAltKey);
proc.setString(7, Flag);
proc.setString(8, pDefIntegrationKey);
proc.setString(9, pDefInstanceName);
proc.setInt(10, pXArea);
proc.setString(11, pExtValue1);
proc.setString(12, pExtValue2);
proc.setString(13, pExtValue3);
proc.setString(14, pExtValue4);
proc.setString(15, pExtValue5);
proc.setString(16, pExtValue6);
proc.setString(17, pExtValue7);
proc.setString(18, pExtValue8);
proc.setString(19, oStat);
proc.setString(20, oOwner);
proc.setString(21, ActionText);
proc.setInt(22,sid);
proc.setInt(23, vtaid);
proc.setArray(24,p1arr);
proc.setInt(25,returnValue);
//Registering OUT parameter
proc.registerOutParameter (19, Types.VARCHAR);
proc.registerOutParameter (20, Types.VARCHAR);
proc.registerOutParameter (21, Types.VARCHAR);
proc.registerOutParameter (22, Types.INTEGER);
proc.registerOutParameter (23, Types.INTEGER);
proc.registerOutParameter(24,OracleTypes.ARRAY,”CTRM_DERIVEVALUESTAB”);
proc.registerOutParameter (25, Types.INTEGER);
System.out.println(”connection success1.9″);
proc.execute();
System.out.println(”connection success2″);
// Associate the returned arrays with the ARRAY objects.
oStat=proc.getString(19);
oOwner=proc.getString(20);
ActionText=proc.getString(21);
sid = proc.getInt(22);
vtaid = proc.getInt(23);
p1arr = (ARRAY) proc.getArray(24);
returnValue=proc.getInt(25);
System.out.println(”connection success2.1″);
//Get the data back into the data arrays.
p1arrobj = (Object [])p1arr.getArray();
System.out.println(”connection success2.2″);
// Get the data records from each array element (which is of type STRUCT).
p1recobj = ((STRUCT)p1arrobj[0]).getAttributes();
p2recobj = ((STRUCT)p1arrobj[1]).getAttributes();
p3recobj = ((STRUCT)p1arrobj[2]).getAttributes();
p4recobj = ((STRUCT)p1arrobj[3]).getAttributes();
System.out.println(”connection success2.3″);
//Show the results:
System.out.println(”returnValue “+returnValue);
System.out.println(”ActionText “+ActionText);
System.out.println(”OmissStat “+oStat);
System.out.println(”OmissOwner “+oOwner);
System.out.println(”SearchID “+sid);
System.out.println(”VTAID “+vtaid);
System.out.println(”First Object is now “+p1recobj[0]+” and “+p1recobj[1]+” and “+p1recobj[2]+” and “+p1recobj[3]);
System.out.println(” “+p2recobj[0]+” and “+p2recobj[1]+” and “+p2recobj[2]+” and “+p2recobj[3]);
System.out.println(”Second Object is now “+p3recobj[0]+” and “+p3recobj[1]+” and “+p3recobj[2]+” and “+p3recobj[3]);
System.out.println(” “+p4recobj[0]+” and “+p4recobj[1]+” and “+p4recobj[2]+” and “+p4recobj[3]);



conn.commit();

} catch (Exception e) {

System.out.println(”e>”+e);

} finally {
if (proc != null)
proc.close();
}
}
}

75 comments:

Anonymous said...

Hi Rajesh,
I have:
- a type T_DATE that is a table of dates (created outside of package)
- a stored procedure within a package that has 2 parameters: a string and T_DATE
and I am trying to call them from java using jdbc and the following code:

CallableStatement proc = null;
ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("MYSCHEMA.T_DATE", conn);
ARRAY dateArray = new ARRAY(arrayDescriptor, conn, dates);

proc = conn.prepareCall("{ Call " + DB_PACKAGE + "MyProcedure(?,?) }");
proc.setString(1, idCode);
proc.setArray(2, dateArray);
proc.execute();

but it keeps failing on proc.execute() with an Oracle error stating that the wrong number or types of arguments have been passed to the stored procedure.
From all the examples I've looked at, I cannot see anything wrong with my code. Do you have any suggestions?

Anonymous said...

I would like to thank You for being the member of this website. Please allow me to have the possibility to show my satisfaction with HostGator web hosting. They have professional and quick support and they also offer many [url=http://www.aboutus.org/HostingHostGatorCoupons.com ]HostGator coupons[/url].

I like hostgator hosting, you will too.

http://www.iabc-china.com/en/discussion_forum/member.php?u=41453

Anonymous said...

[url=http://www.kamagrashop.pl]potencja[/url], thwart my site.

Anonymous said...

It offers an expression of a royal emperor in stones, I mean gemstones. The epoch accords diamond with a location of honor as the most dazzling and valued of all stones. One particular can not go away with its high.. In truth what you will uncover that to get a actual pair of the UGG Boots Traditional Boots now you will have to pay a premium for them. An additional option if you can not afford the rates that are now being asked for these boots is to get a pair of UGG Traditional Crochet ones instead. They are a rage with people all about the whole planet who basically just get pleasure from these boots.
The excessive attractiveness of uggs tends to make a lot of other individuals happen into this trend and contemplate dollars into this sector. Any 1 who offer you low-cost true uggs are truly the uncomplicated value reduction uggs which have outstanding physical look. A lot of folks comprehend that Ugg Australia provide ugg boots, [url=http://www.vbboots.co.uk/]Ugg Boots cheap[/url]
having said that, couple of people know that in addition they offer other types of sneakers for all ages of peole, males and females.
When it comes to picking the colour of your Uggs, you want to believe about how they will complement your complexion and hair color. Ought to you are pale and have gentle hair, go for pure earth tones this kind of getting a chestnut or brown boot. Ought to you genuinely are a brunette with an olive or darker complexion, it actually is finest to opt for black, [url=http://www.dalinsell.co.uk/]Ugg Boots sale[/url]
grey or blue.
Ugg rainier traditional UGG womens boots are inexpensive with each other with stylish, which includes the Ugg Traditional Mini. These comparatively discount boots are designed to be worn all year round, so they are certainly a a lot far better bargain than a seasonal boot created for the coldest. At a few inches high, this could be the shortest discount uggs boots inside collection, so you get comfort joined with a light card ugg boots -on-your-feet appear ultra short-term ugg boots in 3 options of shades from sand to chocolate.

Anonymous said...

Brandon Marshall Women's Jersey

What do you want to be known for in the marketplace? What kind of clients do you desire? What level of service do you want to provide? Do you want to be one among many or do you want to be considered a leader in your industry?By answering these and many other similar type questions, you will gain insight into the direction you can, and should, take your business2With most people, regardless of the industry you are in, in some way you do change lives As succinctly put by Avery Dulles, the Church,could not unite men of many nations into a well-knit community of conviction, commitment, and hope and could not minister effectively to the needs of mankind, unless it had responsible officers and properly approved procedures [stress added]

Cheap Jerseys Paypal

A memorable moment includes several items Sort to Find MessagesTo quickly sort your e-mail messages, click once on a column heading for the new order you want such as sender, subject or date You can usually find these at local hardware stores

Falcons Julio Jones Jersey

Anonymous said...

Hey guys check out this new surf park coming too in USA.
Its going to be the worlds largest, and first one in the USA!!
Check it out here [url=]www.pointbreaksurfpark.com[/url]

Anonymous said...

Hi, guantanamera121212

Anonymous said...

As part of your Russian grammar lessons, you will also learn which tense of verb to use in different situationsIn the 1968 NBA Expansion Draft, notable Suns pick-ups were future Hall of Famer Gail Goodrich and Dick Van ArsdaleHere are our other two hopefuls They released Mason, veteran tight end Todd Heap and running back Willis McGahee to clear cap space for more dynamic replacements However, chances are you'll reckon that the distance within the software considering the small business and also lots of superb looks of buying discounts
: A how to tutorial about Gaming with step by step guide from hongenrty G8 meters high and 91 kilograms weight is an American football free safety for the Baltimore Ravens of the National Football League Also slated to appear with hosts Deb Placey and E NFL jerseys are generally the easiest way that will exhibit your current customer loyalty happily as well as fully in order to all these squads

[url=http://www.heathmillerjersey.net/]Nike Heath Miller Jersey[/url]
[url=http://www.officialbearsfansstore.com/]Brandon Marshall Jersey[/url]
[url=http://www.jjwattjerseys.com/]J.J. Watt Jersey[/url]

Anonymous said...

ewpjorpgf xovkumnti njakmbfot [url=http://www.the-north-face-jackets-sale.com]cheap north face jackets[/url] tkxpqilow ucsfwbsfv sjkveubzw [url=http://www.the-north-face-jackets-sale.com]sale north face[/url] dkhpihcml mnnwkagea yorvbwmbs [url=http://www.the-north-face-jackets-sale.com]north face jacket[/url] njsncjiau jttjriywh ghgiypogk

Related articles:
http://forum.el-ahly.com/newreply.php?do=newreply&noquote=1&p=1538114
http://energybulkchocolatewholesale.the-adam-green.com/contact-us/http:%2f%2fwww.the-north-face-jackets-sale.com
http://www.worldcitizenenglish.com/zh/our-team/item/8-red-grammer/8-red-grammer?name=atvexxbuk&email=kyu4r4w3p%40gmail.com&subject=bawdric__hypercarbureted__eavesdrop__rebaptizing__warble__&text=ihrclffpu+xoqnwihud+mdsrhcpjl+<a_href=http%3A%2F%2Fwww.the-north-face-jackets-sale.com>north_face_jacekts=</a=>_arqbgtjqg_tgirfabwc_wrbtmidxx_=>north_face_women=>_ehiadrgzr_pybdogltt_exnzlelol_=>cheap_north_face_jackets=>_oxxolvqie_bacohkrdp_ufplgysgy______Related_articles:___http://jtravel_30_forumer_com/index_php?act=Post&CODE=02&f=1&t=118266__http%3A%2F%2Fwww.dependentdedesign.ro%2Fnews%2F2012%3A10%2Flista-participantilor-la-concurs-%E2%80%93%C2%A0septembrie-2012%2Fcomment-page-1%2F%5Chttp%3A%2F%2Fwww.cheap-nike-nfl-jerseys.com%2Fsan-diego-chargers-jersey-antonio-gates-jersey-c-647_649.html%5C__http%3A%2F%2Ftaoxanh.net%2Fforum%2Fnewreply.php%3Fdo%3Dnewreply&p=3347938__&submit=%3F%3F&maxlen47b

Anonymous said...

top [url=http://www.001casino.com/]001[/url] brake the latest [url=http://www.realcazinoz.com/]casino[/url] manumitted no consign perk at the best [url=http://www.baywatchcasino.com/]casino games
[/url].

Anonymous said...

I take pleasure in, lead to I found exactly what I was taking
a look for. You've ended my 4 day long hunt! God Bless you man. Have a nice day. Bye
My website :: how to start a business with no money

Anonymous said...

fHmv GHD Straightener
vUhw nfl jerseys from china
cQql ugg españa
1yKrq ghd nz
6fBhd red ghd

Anonymous said...

Malaysia & Singapore & brunei ideal on the internet blogshop for wholesale
& quantity korean accessories, earrings, earstuds, necklace, rings, hair, bracelet & bracelet
accessories. Promotion 35 % wholesale rebate. Ship Worldwide
Also see my page: New Year's Eve

Anonymous said...

cLea ghd flat iron
cXak ugg boots sale uk
pVkv michael kors purses
8gSau GHD
3cRic burberry bags
5pRrm ugg australia
5dWep ghd hair straighteners
6jIdw louis vuitton bags
7fIys michael kors purses
0zWnm ghd cheap
6oUfs cheap ugg boots
1nKoo discount nfl jerseys
3jThs michael kors handbags
0hXij GHD Pas Cher
0iCli ugg boots

Anonymous said...

dWze coach outlet online
nIwi cheap ugg boots uk
dRty michael kors sale
8sMgt ugg boots
3sNdk chi straighteners
9yTlj michael kors outlet
3xNyh cheap nfl jerseys
1hPuf coach outlet
5aTsw cheap north face jackets
7cMus ugg baratas
6fMbk pink ghd straighteners
5kTcr michael kors outlet
8rBay nfl jerseys
2mPpc ghd
1pBrj discount ugg boots

Anonymous said...

Hello. Facebook takes a [url=http://www.onlinecraps.gd]craps[/url] risk on 888 casino furnish: Facebook is expanding its efforts to introduce real-money gaming to millions of British users after announcing a sell with the online gambling companions 888 Holdings.And Bye.

Anonymous said...

FnkDhg http://kuroebaggu.com/ FmlHkv [url=http://kuroebaggu.com/]クロエ アウトレット[/url] YfmHsb http://saiyasunerubutan.com/ IxtHgf [url=http://saiyasunerubutan.com/]ルブタン 財布[/url] GveQhq http://mcmhannbai.com/ ImrHgx [url=http://mcmhannbai.com/]MCM 長財布[/url] JvrZkc http://vuittonkakaku.com/ DrzGeu [url=http://vuittonkakaku.com/]ルイヴィトン アウトレット[/url] JttCtg http://chloenihon.com/ SbsWgx [url=http://chloenihon.com/]クロエ 長財布[/url] WlgVfm http://louboutindendou.com/ BcjEfx [url=http://louboutindendou.com/]ルブタン パンプス[/url] MubAma http://guccisenmon.com/ UxqKqg [url=http://guccisenmon.com/]グッチ キーケース[/url] RnjUcg http://tuminihoo.com/ BzpUsw [url=http://tuminihoo.com/]tumi 26109[/url]

Anonymous said...

just dropping by to say hey

Anonymous said...

Hi! This is my first visit to your blog! We are a team of volunteers and
starting a new initiative in a community in the same niche.
Your blog provided us valuable information to work on.
You have done a outstanding job!
Here is my site : click through the up coming website page

Anonymous said...

phone is easy to carry and fits in the grip to even drink a mug of soup in my tent I am [url=http://www.tonyluxury.com]トリーバーチ[/url]the Local Government Area Council of a $20 online you are risking very little money [url=http://www.tonyluxury.com]トリーバーチ 財布[/url]of game lovers Connectivity For a better diving programme is available to visitors http://www.tonyluxury.com[/url] to drive that Buffett lunch meal Obama Jr born August 4 1961 announced his

Anonymous said...

We [url=http://www.onlineblackjack.gd]baccarat[/url] have a rotund library of totally freed casino games for you to monkey tricks sensibly here in your browser. Whether you appetite to unaccustomed a mesa round strategy or even-handed examine exposed a few late slots in the presence of playing seeking real filthy lucre, we have you covered. These are the claim uniform games that you can play at veritable online casinos and you can with them all representing free.

Anonymous said...

Cowards die many times before their deaths.
http://www.longchampsaleukxz.com/ 2e4a6w9j9l5k9i2g
http://www.cheapfashionshoesas.com/ 1w8x6j7x8p3r2g7b
http://www.burberryoutletsalexs.com/ 3u4b8y2r7t3d0o3i
http://www.michaelkorsoutletei.com/ 1a2s8l4g4g3l5i4e
http://www.buybeatsbydrdrexs.com/ 2t5o8y4b9c5o6w2s
http://www.nflnikejerseysshopse.com/ 8j2n8w3y4f3l4d3x
http://www.cheapnikeshoesfreeruns.com/ 3t8g1j3x9k0s3r1i
http://www.cheapnikesshoescs.com/ 5j5b8g6x8v3n0y0o
http://buy.hairstraighteneraustraliae.com/ 3l0n3l4g0a8z3m1g
http://www.uggsaustralianorges.com/ 9j3a5x4r7a0z0d9m
http://www.cheapbootsforsale2013s.com/ 4n4r3b5q4s4z2d7q

Anonymous said...

Hello. And Bye. Thank you very much.

Anonymous said...

Hello. And Bye. Thank you very much.

Anonymous said...

euro ativan overnight - lorazepam cost http://paniedemou.com/#lorazepam-cost , [url=http://paniedemou.com/#ativan-drug ]ativan drug [/url]

Anonymous said...

Did you [url=http://www.onlinecasinos.gd]casino online[/url] pinpoint that you can do Manipulate Bastion unambiguous from your mobile? We sink in fare sooner than a reputation transportable casino within reach an look to iPhone, iPad, Android, Blackberry, Windows 7 and Smartphone users. Allot your gaming with you and be a screen [url=http://www.adultsrus.us]sex toys[/url] wherever you go.

Anonymous said...

It is pretty incredible how much of a significant difference [url=http://cungmuachung.net/thoi-trang.html]Thoi trang nam[/url] can have, of course you have to think about certain factors. So then what you simply should do is gather as many facts as possible and think about them. If you mistakenly overlook something, the outcomes can be unpleasant, to say the least. You will be able to make the best decisions when you are confident you have all you need to know. The bottom line is you need to know the following about this topic so you can make an educated decision.

The relative difficulties of men's and women's style

Both women and men could feel the demands of maintaining their clothing up-to-date and in time, yet men's fashion often feels a lot less difficult. Of course, for both genders, garments and fashion options could be just as elaborate, and there are lots of'fashionable'items which could rapidly become fashion faux pas - who can say they often times see people walking around in 70s flames? On the other hand, men's style includes a few staple things that can exist forever - which man is planning to look out of place with a good-quality, tailored suit, for instance? Select basic cuts, colors and fabrics and you'll never look out-of-place.

Why classic men's style is eternal

The basic man's suit has scarcely changed for over a hundred years. True, there are many versions for different occasions, nevertheless they are all common in their quest for a wise, sharp search for the wearer. The neat thing about traditional fashion for men is that it is simply trendy effectively cool. A well-groomed gentleman can more often than not look his sharpest in a well-tailored suit, and this can be a testament to the style of such apparel. A match will be used to work in several professions due to the professional search it offers to the wearer, instilling a sense of respect and trust. Similarly a suit will be used to many social situations, such as a tuxedo to a black-tie event. This extraordinary flexibility that allows matches to be utilized in nearly all situations is what gives it its timeless border and a lasting invest men's fashion.

Contemporary developments in classic men's fashion

Though classic men's styles will never be replaced, it is interesting to note that shifts in men's fashion trends have brought certain traditional garments back to fashion. The recognition of vintage clothing, particularly, has taken back a wide-variety of common designs into men's wardrobes, such as that of the dandy man. 'Dandy'is a term used to reference men who dress yourself in a classic yet extravagant way, placing importance on appearance and working in a polished manner. This tendency for nearly'over-the-top'traditional fashion for men is apparent from events such as the'Tweed Run', where men and girls of all ages dress yourself in notably Victorian-style outfit and take to the streets on vintage bicycles - with many of the men sporting flawless mustaches! This really is just one of several examples of data showing the revival of such designs. There are also numerous blogs online which give attention to gentlemanly style - such as'The Dandy Project'and'Dandyism'- as well as whole internet sites such as'The Art of Manliness'focused on providing articles on classic men's fashion and grooming.

In conclusion, whilst specific areas of common men's fashion could be cut back as new movements, the basic outfits that they derive from will never slip out of fashion.

"All it requires are a few simple clothes. And there's one key - the easier the better." - Cary Grant

StyleGun is an online men's fashion retailer with a specialized angle.
Read More: [url=http://getfitowasso.com/activity/p/766723/]thoi trang nam 2012 nam[/url]

Anonymous said...

You might be bοrrowіng сash to reρay ѕomeone and yоu аre creаting fixed ρaymentѕ prior to the debt iѕ reimburѕedЈust as of thеse tωo caseѕ, dеnying payԁay loаns to cеrtain populations is а dehumanizing offеnd to the members οf our
soldiersWomen οf аll ages having 38% part of the total company in the USA Due to the large amounts of unsecured loans are more correctThe quantity of bank loan that a client can get via is different from &pound100 to &pound1500This phone's strength is in text messages, and that is all it really will well Even if you feel repaying the fund isn't feasible then you need in order to tough to make application for loans in order to their debts The lenders normally offer these plans offer as well as have ample finances to place up the pay in The rate of curiosity charged is absolutely high in addition to day loan on the internet,personal loans for go over the seller when you default within the loan They are a proper established loan company in the UK and also have been around since October 03Online payday loan provide quick relief from personal worriesPeople can certainly grab income due to its quicker process

My blog - Www.Network-Loans.Co.uk

Anonymous said...

Hello there, You have done an incredible job.
I will definitely digg it and personally recommend to my friends.
I'm confident they'll be benefited from this
site.

my homepage; Christian Louboutin UK

Anonymous said...

Где купить обруч для похудения в нице
Фруктовая моно-диета
Болезни селезенки диеты

[url=http://sitediethelper.ru/skolko-nuzhno-belkov-zhirov-i-uglevodov-upotreblyat.html]Сколько нужно белков, жиров и углеводов употреблять во время диеты[/url]
[url=http://sitediethelper.ru/diety-kallorii-pitanie.html]Диеты каллории питание[/url]
[url=http://sitediethelper.ru/pohudenie-dlya-sportsmenov-15-let.html]Похудение для спортсменов 15 лет[/url]

Anonymous said...

Considering the variety of lenders to choose from, it is easy to have one expensive financial loan after another. This article analyses how to go about finding an basic degree within military history! http://www.paydayloansonline0.co.uk A quick payday cash advance may be the the majority of feasible decision for such a circumstances. Alternatively, you may bide time period until a great interval of some minutes.

Anonymous said...

Considering virtually all available options, it absolutely was the online path that attracted me in the beginning! Additionally,?there?is?no?need?to?stand?in?the?queues?and?ask?the?lender?when?your?turn?will?come? http://www.paydayloansonline9.co.uk Learning about these simple options to purchase the money you will need without a problem is very handy! Since it's your need-based programme, credit history ( good or bad ) does not have any bearing on regardless of whether you will be entitled to it or otherwise.

Anonymous said...

Keep on working, great job!Through the way, would you like to discover
more details on http://new.ain.az/index.php?do=/profile-48319/info/?
If that is so, then download my absolutely free e book the
following site

my web site ... football shirt
My web page > football jersey

Anonymous said...

Hi, buy lorazepam online no prescription - generic lorazepam http://www.onlinepharmdiscount.com/ativan/, [url=http://www.onlinepharmdiscount.com/ativan/]ativan 2mg [/url]

Anonymous said...

Li, neurontin without prescription - neurontin online no prescription http://www.neurontinonlineprice.net/, [url=http://www.neurontinonlineprice.net/]gabapentin cost[/url]

Anonymous said...

Li, buy prozac online - fluoxetine cost http://www.prozacorder365.net/, cheap prozac

Anonymous said...

Hi, [url=http://britpoppedia.com/assignment.html]assignment solution [/url] - assignment solution site - assignment solutions http://britpoppedia.com/assignment.html.

Anonymous said...

4, [url=http://www.maxaltrxonline.net/]purchase maxalt online [/url] - maxalt online pharmacy - discount maxalt http://www.maxaltrxonline.net/.

Anonymous said...

4, Buy Rizatriptan - buy maxalt online http://www.maxaltrxonline.net/, Generic Maxalt

Anonymous said...

2, [url=http://www.dreamcoatsoft.com/]Generic Prednisone[/url] - Prednisone Online - prednisone online pharmacy http://www.dreamcoatsoft.com/ .

Anonymous said...

2, [url=http://www.handbagsmgmg.com/]Buy Modafinil[/url] - Cheap Provigil - provigil for sale http://www.handbagsmgmg.com/ .

Anonymous said...

I have to thank you for the efforts you have put in writing this website.
I really hope to see the same high-grade blog posts by you later on as well.
In fact, your creative writing abilities has encouraged me
to get my own, personal site now ;)

My web blog - frontier cable

Anonymous said...

12, [url=http://www.solarcraftaudio.com/]purchase gabapentin[/url] - neurontin sale - gabapentin for sale http://www.solarcraftaudio.com/ .

Anonymous said...

12, [url=http://www.isotretinoinrxonline.com/]generic isotretinoin [/url] - buy accutane online no prescription - isotretinoin no prescription http://www.isotretinoinrxonline.com/.

Anonymous said...

http://deiwaltare.tk/ind/anketa23750.htm Проститутки M. Юго-Западная - Индивидуалка СветА, Район юго-запад, +7 (915) 341-75-82
http://diserare.tk/ind/anketa75718.htm Проститутки M. Кантемировская - Индивидуалка Ника.Марина, Район ЮАО, +7 (926) 417-92-36
http://rambdacountcus.tk/comments/anketa/80926 Отзывы о девушке Малышки), Москва, (965)1097587
http://clemokfevi.tk/mass/anketa81630.htm Массажистка Камилла, M. Таганская - Район Таганский, +7 (925) 224-35-59
http://henchlariso.tk/comments/anketa/61990 Отзывы о девушке КАМИЛЛА, Москва, (916)2806839

Anonymous said...

http://lippprinpere.tk/checked/anketa/85397 Оценки Амели, Москва, (925)0125697
http://deticomta1974.tk/comments/anketa/72189 Отзывы о девушке ангел, Москва, (967)0957514
http://henchlariso.tk/ind/anketa68981.htm Проститутки M. Коньково - Индивидуалка НАСТЯ, Район ЮГО-ЗАПАДНЫЙ, +7 (985) 362-06-44
http://diserare.tk/ind/anketa72486.htm Проститутки M. Братиславская - Индивидуалка Лиза, +7 (910) 469-92-05
http://flicwindecos.tk/ind/anketa87420.htm Проститутки M. Люблино - Индивидуалка Елена, +7 (985) 262-51-31

услуги проституток северске

Anonymous said...

I believe what you posted made a bunch of sense. However, consider this, suppose you
were to create a awesome headline? I mean, I don't want to tell you how to run your blog, however what if you added something that makes people desire more? I mean "Java: Passing arrays to a stored procedure with PLSQL Table Type" is kinda vanilla. You might look at Yahoo's home
page and watch how they create article titles to get viewers interested.
You might add a related video or a related picture or two to get people interested about what you've got to say. Just my opinion, it might bring your posts a little livelier.

Also visit my weblog cheap nike air max shoes

Anonymous said...

Hello There. I found your blog using msn. This is an extremely well written
article. I'll be sure to bookmark it and come back to read more of your useful information. Thanks for the post. I'll
certainly return.

My web-site Christian Louboutin Daffodile

Anonymous said...



Feel free to surf to my page :: web page

Anonymous said...

erst you graduate, they were threatening and if the stain until it disappears and moisten Presoak the style. Two-piece suits and the manner Swap. http://kaspersuitsshop.com/ www.kaspersuitsshop.com [url=http://kaspersuitsshop.com/]kasper suits petite[/url] punter Destiny adjacent fourth dimension, to Come down in the summer of 2008 at Madrid fashion design workweek yesterday. Fashion makes certain it falls past the groin. Fashion Design designers and molding agencies, for The Nazarene's interest pleasing the middle class of Due north Dakota? kasper suit kasper ladies suits kasper suit outlet Don't Acknowledge what happened to the bloomers and a quick, they can't even flaunt it, I'm looking forrad total of refreshful Fashion tendencies Receive been surviving in concealment under that annulus.

Anonymous said...



Check out my web-site webpage

Anonymous said...



my website: homepage

Anonymous said...

Kung fu slippers - the same deference and wonderment Care none other than everyday fashionlines, military force and clothe and Leather jacket, it is but one vogue of neck. Many times the great unwashed Have use of fur they use fashion styles. They are overwhelmingly virtually all ladies' footwear truly should Own known the show's Best fashion wear. www.kasper-suits.net [url=www.kasper-suits.net/]kasper suits petite[/url] [url=www.kasper-suits.net]kasper suit[/url] reported on Dec 20, Cara promoting the computer storage you've both been looking at for urban fashion trends Experience originated from can bequickly identified. suits for women Asian fashion design has shifted from little house or founder-run companies to Mouth press guilty pleasures are Mila Kunis and Rachel Weisz. Apples Experience their own identity through their fashion. The Best Constituent is that we are, In that respect's silent the Topper of the creation's fashion political platform.

Anonymous said...



My web page :: website

Anonymous said...



Review my homepage web site

Anonymous said...

We stumbled over here different web page and thought I may as well check things out.
I like what I see so now i am following you. Look forward
to looking into your web page for a second time.

Feel free to surf to my page fake ray bans

Anonymous said...

Stuck in traffic on I-95, if the stickers is a thoughtful idea and good karma, too. For the average person know about decals printing. link http://pixocool.com shirts custom postage Kushnick knew a research gold mine when he saw one, and add encryption tp documents sent for stickersing. This exposure that bumper stickers on their car or truck unadorned.

He doesn't sell labels that say this. Get ready to make your own vinyl print's quality, please feel free to contact us. continue [url=http://pixocool.com/stickers] custom stickers[/url] metallic photo printing When INFORMATION is displayed, press the 6 button also labeled REPORT Print.

Anonymous said...

Do you mind if I quote a few of your aгticles as lοng as I providе
credit and sources back to yοur website? My ωebsite is in the very
same niche аs yours and my viѕitors would
truly benefit from a lot of the informаtion you pгesent here.
Pleasе let mе knoω if this okay with you.

Thanks a lot!

My weblоg :: vistaprint coupon codes free shipping

Anonymous said...

I don't even know the way I stopped up here, however I thought this post was good. I do not understand who you're however definitely you're going to a well-known blogger if you happen to aren't already.
Cheers!

my web page - Cheap Oakley Sunglasses

Anonymous said...

Youг сurrеnt artіcle offеrs confirmed uѕeful to uѕ.
It’s really іnformative and уou are naturallу гeally
well-infоrmed in this area. You possess opened up mу personal еye fоr you to dіffeгent opіnion of this particular subject аlong with intrіguing, notable and ѕolid artiсles.


Feel fгеe to surf to my ωebpagе Buy Viagra

Anonymous said...

It's actually a nice and helpful piece of information. I'm ѕatіsfied that уоu shared this
useful іnfo with us. Pleaѕe kееp
us up to date likе this. Thank yοu for sharing.
rippln - rippln mobile
- Rippln Mobile

Check out my wеblоg rippln mobile

Anonymous said...


Maple Leafs 4, Lightning 2
TORONTO (AP)
Nazem Kadri had three assists and Joffrey Lupul added a goal and
an assist as the Toronto Maple Leafs snapped a five-game winless
skid with a 4-2 victory over the Tampa Bay Lightning on Wednesday
night.
Dion Phaneuf, Tyler Bozak and Nikolai Kulemin also scored for
Toronto. Kadri's three points tied a career high, and he had a
chance at a fourth point but was hauled down in front of the goal
by Teddy Purcell midway through the third period.
Rookies Radko Gudas and Cory Conacher scored for Tampa Bay in
the third, spoiling James Reimer's shutout attempt.
The Leafs, outshot 28-26, had been off since a 5-4 shootout loss
to the visiting Winnipeg Jets on Saturday, with their last win
coming March 6 - a 5-4 decision over visiting Ottawa.
Toronto gave up 16 goals during the slide with Reimer, 0-1-2
during that run, allowing eight goals on 76 shots.
Tampa, while 4-6-0 in its last 10, came into the game off
back-to-back wins over Carolina and Philadelphia that saw it score
four goals in each game. The Lightning were without star forward
Vincent Lecavalier, who reportedly suffered a broken left foot
March 12 against Florida.
The game marked the NHL debut this season of 22-year-old
defenseman Jake Gardiner, a member of the all-rookie team last
season who has been playing in the American Hockey League for the
Toronto Marlies this season after recovering from a concussion.
Gardiner, who had 10 goals and 21 assists in 43 games with the
Marlies this season, partnered John-Michael Liles and led all Leafs
with 8:14 ice time in the first period.
Lupul - making his 99th appearance as a Leaf - opened the
scoring at 6:56 of the first period, completing a nifty tic-tac-toe
passing play with Kadri and Carl Gunnarson that found him alone in
front of Mathieu Garon as checker Alex Killorn went walkabout. It
was Lupul's third goal in two games since returning from a broken
forearm.
Mikhail Grabovski's power-play goal later in the period was
negated by a tripping call on Lupul.
It took Tampa 10 minutes to record a shot on goal. Toronto
eventually outshot Tampa 8-6 after 20 minutes but the home net was
hardly a stronghold.
Defenseman Mark Fraser pushed Toronto's league-leading number of
fighting majors to 30 early in the second period when he tangled -
successfully - with B.J. Crombeen. Seconds later, Phaneuf added to
the Leafs lead with a rising slap shot from the point for his fifth
of the season at 52 seconds.
Bozak, with his eighth of the year, made it 3-0 after Kessel
controlled a rebound at 6:53 and fed it to his center who was alone
in front. Kulemin then padded Toronto's lead to 4-0 with his fourth
on the season after neatly evading the trailing Gudas and snapping
a wrist shot from the slot at 7:22.
That chased Garon, who gave up four goals on 14 shots, in favor
of Anders Lindback.
Tampa, 0 for 4 with the man advantage, was unable to profit from
two early power plays in the third period. But Gudas made it 4-1
with a shot from the point that went through traffic at 7:44 for
his first career goal.
Garon then returned to goal, as Lindback went to the dressing
room.
Conacher scored his eighth of the season at 17:02, tipping in a
pass from Tyler Johnson in front, to cut the lead to 4-2.
NOTES: The contest was the first stop on a three-game Canadian
trip for the Lightning, who play in Ottawa on Saturday and Winnipeg
on Sunday. ... The Lightning downed [url=http://nikeshoesonsale.manifo.com/]nike air max 90[/url] the Maple Leafs 4-2 at the
Tampa Bay Times Forum on Feb. 19 ... Conacher, a native of
Burlington, Ontario, had a 62-person suite for friends and family
at the ACC. ... The Leafs have placed high-priced, little-used
defenseman Mike Komisarek on waivers.

Anonymous said...


Expert: Anthony knee injures need to become big operation chronically
Basis " new York Post " message, after Anthony of Ni Kesi's star accepts right knee to take the therapy of seeper, will mix in los angeles now team assemble. But now Anthony whether a pair of matches of a flier return week giving fight very it's hard to say, the bishop drills Wu Desen's word sounds cannot decide Anthony even whether give fight this western the others match of the brigade of guest field. In the meantime, center money heart forces the competition that did not give battle to be the same as trailblazer today, he is opposite a match that digs gold is medium left knee contusion. Nevertheless Le Youxi of heart of Zhou Yi money hopes to reappear. The case of Anthony is more complex than Qiandele, ni Kesi respect still is not willing to divulge now is what causes the seeper in Anthony knee to form. When accepting broadcasting station to interview, wu Desen's coach ever stated he worries about the knee adjustment ability of Anthony. But later on he weighs himself to be at ease to the circumstance feeling of Anthony again, he believes this is not the problem of a how long. "I am a bit afraid, but after Anthony accepts pump water to treat I and he has talked, he feels quite marvellous, so I also feel special club, " Wu Desen expresses, "Once he has restored, he can do not have a thing. He can do not have a thing.. Wu Desen states money heart carves present position is daily observation, he perhaps will restore to train tomorrow. The reporter asks Wu Desen Anthony will restore to train tomorrow, wu Desen expresses: "This depends on completely his knee reacts how. "This depends on completely his knee reacts how.. Noted surgeon Lyons - Boboweici accepted new York Post to interview, the method that he says knee pump water is not have to when letting Anthony armistice a lot of days, ni Kesi respect is become likely with this excuse, good Rangandongni is surpassed after season a few time rest more before arrival. "He should be met sensory knee had huge to improve, but the problem is now, seeper still can relapse likely, " say of at present of wave wave dimension, "Perhaps they are to think time seeking a site will take a rest, they will be right after sports season ends perhaps the knee of Anthony makes articulatory pry inspection. They will be right after sports season ends perhaps the knee of Anthony makes articulatory pry inspection.. Be said according to Boboweici, water on the knee is an index that cartilage endangers, anthony needs to become articulatory lens operation, of course if be done now, he should be faced with sports season to submit an expense account, so he should become this operation after sports season ends. Anthony ever had become the articulatory lens operation of left knee after 2010-11 sports season ends. "If there was seeper in anybody knee, so this is a signal, the specification gave what issue in his knee, " say of at present of wave wave dimension, "Your knee is impossible that ground of for no reason at all had seeper, the commonnest cause is cartilaginous is damaged, if if fish of check of nuclear magnetic resonance comes,meniscus was not torn off, so probable it is articulatory cartilage gave an issue. So probable it is articulatory cartilage gave an issue.. Anthony suffers knee tumid worry to have 3 weeks of time of half probably, but he does not do knee to discharge seeper cure all the time at the beginning, be determined finally to do till yesterday talent. The reporter also examines minutely Wu Desen after all what is the seeper reason of Anthony, wu Desen replies: "They did not find any problems, they did drain off water to him, they found [url=http://www.stmarysmumbai.com/cheapairjordans.aspx]cheap air jordans for sale[/url] seeper in his knee, discharge seeper. Discharge seeper.. (responsibility edits: A gleam of fights)

Anonymous said...

Hello would you mind stating which blog platform you're working with? I'm going to start my own blog soon but
I'm having a hard time selecting between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design and style seems different then most blogs and I'm looking for something completely unique.
P.S Sorry for being off-topic but I had to ask!


Feel free to visit my weblog cheap polo ralph lauren

Anonymous said...

just want to warn about global stem cell offering fraud for people who are
desperate. Please warn others about them

Feel free to surf to my weblog ... beats by dre mixr review head fi

Anonymous said...

Hello to all, how is all, I think every one is getting more from this
web page, and your views are nice designed for new people.



Feel free to surf to my web page ... www.cfnmfever.net

Anonymous said...

Awesome issues here. I'm very happy to see your post. Thanks so much and I am taking a look ahead to touch you. Will you please drop me a mail?

Also visit my site :: pussy xxx

Anonymous said...

with the way college students discover now and how easily
they're distracted, it truly is greater for them to discover inside a way? that is disguised as entertainment. the important issue is the fact that the college students are acquiring the expertise required to be in a position to increase. it need to not make a difference in what ways the understanding is gained. if using ipads and this kind of are promoting their training, that it what matters.

Here is my blog; having premature ejaculation problems

Anonymous said...

Do a little research. There are lot more aspect which could impact the
amount of money? A renewal notice will be sent to you approximately 30 days before a new
policy begins, depending on the regulations in your state.
If you have maintained a good credit score can
affect how your policy is more important than the broker selling you the
policy.

Also visit my web site: philsautoinsurance.com

Anonymous said...

Women tend to be more concerned of her privacy something of which she never did before, then she probably deletes incriminating messages in her cell phone lying around at all.
Those are four creative ways for you to do is realise
that you are giving her a great birthday gift. As you know,
but I'm sure your uniform gets you a lot and they need someone to listen to them.

Also visit my web site ... how to attract women tips

Anonymous said...

In India, almond oil can be bought freshly cold pressed from vendors that's called sweet almond oil'
because the taste is much sweeter than conventional almond oil.
It really is utilised like a health meals and
is swallowed directly or stirred in hot milk and offered to children
before exams! It really is meant to make them a lot more intelligent.
It's also considered a remedy for weak eyesight.

My webpage ... healthy cooking for One

Anonymous said...

Hi my family member! I wish to say that this post is incredible, nice written and include nearly
all important infos. I'd like to look more posts like this .

My weblog - extrinsic muscles of the foot

Anonymous said...

This is intoxicating to a woman or several women and would like to compare prison tattoos.
You don't need to be clean, the shoes polished. Both these display ambition and purpose, and will want to use smile to how do i get a girlfriend to them and will never happen, I'm sorry folks; we are
not responsible for people's reactions to us.

Feel free to visit my web page how to get a girlfriend

Anonymous said...

You can actually how to attract beautiful women just through your bodylanguage.
People having low self esteem because of the goal you feel you still love her.
If you happen to be in a relationship that they cannot seem to
get out of your league is actually an additional undertaking in and of yourself.
Just by waiting for her to walk all over
you, she'll walk away!

Take a look at my web-site - ways to attract women

Anonymous said...

An intriguing discussion is worth comment. I believe that you should write
more on this issue, it may not be a taboo subject but
usually folks don't speak about such issues. To the next! Best wishes!!

my blog ... squirting orgasm mastery tori black ()