By David Wiseman (Administrator)published 12 Jul 2009
My Rating:
Vote
Rating:
Not Rated
Views:16474

SQL Server CLR IO Utility

Introduction

Using CLR (.NET Framework) code in SQL Server is a very powerful way of extending the built-in features and functionality. The .NET framework provides access to a library of useful code, allowing you to accomplish useful tasks with a minimal amount of code.  The SQL Server IO project does just that; providing access to some useful IO utilities from within SQL Server by leveraging the power of the .NET Framework.

Installation Instructions

You need to ensure that CLR is enabled for the server and the trustworthy database setting is turned on.  The trustworthy database setting is required to allow CLR code to have external access.

To enable CLR, run the following code:

sp_configure 'clr enabled', 1
GO
RECONFIGURE
GO

To enable the trustworthy setting for the database, run the following code:

ALTER DATABASE MyDatabase SET TRUSTWORTHY ON;

Next, download the "T-SQL Code" and run it in SQL Server Management Studio to install the CLR functions and stored procedures in the current database.

Note: Consider the security implecations before running any of the code in this article.

Code Download

Save T-SQL CodeT-SQL Code

Save Visual Studio Source CodeVisual Studio Source Code

CLR Functions

SQLIO_fnGetDrives

Returns information about the drives installed on your computer/server. 

SELECT * FROM dbo.SQLIO_fnGetDrives()

SQLIO_fnGetDrives function output

SQLIO_fnGetFiles

Returns a list of files in the specified folder.  The function takes 3 parameters:

@path - The folder from which to start the search
@searchPattern - The search string to match against the names of files in path
@includeSubfolders - Specifies whether the search operation should include all subdirectories or only the current directory.

SELECT * FROM dbo.SQLIO_fnGetFiles('C:\Program Files (x86)\Microsoft SQL Server\MSSQL.4\MSSQL\LOG','',0)

 SQLIO_fnGetFiles function output

SQLIO_fnGetFolders

Returns a list of subfolders within the specified folder.  The function takes 3 parameters:

@path - The folder from which to start the search
@searchPattern - The search string to match against the names of files in path
@includeSubfolders - Specifies whether the search operation should include all subdirectories or only the current directory.

SELECT * FROM dbo.SQLIO_fnGetFolders('C:\Program Files (x86)\Microsoft SQL Server\MSSQL.4\MSSQL','',0)

SQLIO_fnGetFolders function output

SQLIO_fnFileExists

Takes a file path as a parameter and returns the bit value "1" if the file exists.

SELECT dbo.SQLIO_fnFileExists('C:\test.txt')

SQLIO_fnFolderExists

Takes a folder path as a parameter and returns the bit value "1" if the folder exists.

SELECT dbo.SQLIO_fnFileExists('C:\MyFolder')

SQLIO_fnReadFile

Takes the path of a file as a parameter and returns the file data in varbinary format.

SELECT dbo.SQLIO_fnReadFile('C:\Test.txt')

SQLIO_fnReadTextFile

Takes the path of a file as an parameter and returns the file data in nvarchar format.

SELECT dbo.SQLIO_fnReadTextFile('C:\test.txt')

CLR Stored Procedures

SQLIO_DeleteFile

Takes the path of a file as an parameter and deletes the specified file. 

EXEC dbo.SQLIO_DeleteFile 'C:\test.txt'

SQLIO_DeleteFolder

Takes the path of a folder as a parameter and deletes the specified folder.

EXEC dbo.SQLIO_DeleteFolder 'C:\MyFolder'

SQLIO_DeleteFiles

Takes the path of a folder, a search pattern and an include subfolders parameter, similar to the dbo.SQLIO_fnGetFiles function and deletes all the files matched from the search.

EXEC dbo.SQLIO_DeleteFiles 'C:\Temp','*.tmp',1

SQLIO_DeleteFilesOlderThan

This stored procedure is the same as the dbo.SQLIO_DeleteFiles procedure, but with an additional maxAge date parameter.  Only files older than the maxAge date specified will be deleted.

EXEC dbo.SQLIO_DeleteFilesOlderThan 'C:\Temp','*.tmp',1,'20090101'

SQLIO_CreateFolder

Takes a path as a parameter and creates the new folder on the file system.

EXEC dbo.SQLIO_CreateFolder 'C:\Temp\New Folder'

SQLIO_CreateFile

Creates a new file, by taking a file path and varbinary data value.

EXEC dbo.SQLIO_CreateFile 'C:\Temp\NewFile.txt',0x68007400740070003A002F002F007700770077002E00770069007300650073006F00660074002E0063006F002E0075006B00

SQLIO_CreateTextFile

Creates a new text file, by specifying a file path and string value.

EXEC dbo.SQLIO_CreateTextFile 'C:\Temp\NewFile.txt','http://www.wisesoft.co.uk',

SQLIO_AppendTextFile

Appends text to the end of a file, by specifying a file path and text to append.

EXEC dbo.SQLIO_AppendTextFile 'C:\Temp\myfile.txt','My Appended Text'

SQLIO_MoveFile

Takes source and destination parameters, moving a file from one location to the other.

EXEC dbo.SQLIO_MoveFile 'C:\Old Folder\MyFile.txt','C:\New Folder\MyFile.txt'

SQLIO_CopyFile

This stored procedure takes source and destination parameters, copying a file from one location to the other.

EXEC dbo.SQLIO_CopyFile 'C:\temp\MyFile.txt','C:\temp\Copy Of MyFile.txt'

SQLIO_MoveFolder

Takes source and destination parameters, copying a folder from one location to the other.

EXEC dbo.SQLIO_MoveFolder 'C:\Old Folder\MyFolder','C:\New Folder\MyFolder
 




  Post Comment
Order By:  
User Comments
      
PedroDCardoso
Posted On: 6/7/2013 3:57:55 PM

I successfully installed and tested your code, but I have one question I am hoping you can help with. When one of the SQLIO_* routines are called, what user/security context does it run in? Specifically when running the dbo.SQLIO_fnGetFiles command, I am trying to retrieve a directory listing from a remote server and am getting a security exception. I have no problem when accessing a local folder (on the SQL box), as you would expect.

I checked the SQL Server Agent account and it DOES have sufficient privileges to the folder in question, so I am confused about how to determine what user it is using. Is their another proxy account I need to set? Please advise.

MobDBA
Posted On: 8/9/2016 7:14:17 AM

Hi, When I tested i'm getting below error. Please resolve this issue. Attaching the error along with this message.

Failed to initialize sqlcmd library with error number -2147024809. [SQLSTATE 42000] (Error 22050). The step failed.


Posted On: 8/18/2017 4:29:04 AM

20170819 junda
michael kors canada
michael kors outlet online
ugg boots clearance
michael kors outlet
swarovski crystal
canada goose outlet
ray ban sunglasses
longchamp outlet online
coach outlet online
christian louboutin outlet
cheap ray bans
michael kors outlet online
ray ban sunglasses outlet
coach outlet online
nike air huarache
kobe 9 elite
coach outlet
coach outlet online
michael kors outlet store
roshe run
polo ralph lauren
tory burch outlet stores
michael kors outlet
ralph lauren polo
michael kors outlet online
cheap oakley sunglasses
fred perry polo
coach outlet online
tods outlet online
christian louboutin sale
ralph lauren outlet
ugg boots clearance
cheap oakley sunglasses
jerseys wholesale
ugg boots outlet
prada outlet online
nfl jersey
cheap ray ban sunglasses
polo pas cher
uggs outlet
polo outlet online
coach outlet online
coach outlet online
michael kors outlet online
polo ralph lauren
nba jerseys
nike shoes
cheap jordans
oakley sunglasses wholesale
snapbacks wholesale
air max 90
michael kors handbags clearance
max 1
coach outlet
snapbacks wholesale
mulberry handbags
mulberry bags
oakley sunglasses sale
burberry outlet sale
michael kors outlet online
polo outlet
ugg outlet,ugg outlet store,uggs outlet,ugg outlet online clearance,ugg outlet coupons,ugg outlet boots,ugg outlet online store,ugg outlet sale
nhl jerseys
canada goose outlet store
nike trainers uk
mbt shoes
christian louboutin outlet
Basketball Shoes
cheap ray ban sunglasses
fitflops uk
coach outlet online coach factory outlet
asics,asics israel,asics shoes,asics running shoes,asics israel,asics gel,asics running,asics gel nimbus,asics gel kayano
canada goose jackets on sale
tory burch outlet online
ferragamo shoes sale
ferragamo outlet
links of london jewellery
oakley sunglasses sale
pandora outlet
cheap ray ban sunglasses
ed hardy outlet
oakley sunglasses wholesale
coach outlet
true religion outlet uk
canada goose outlet
michael kors handbags
coach factory outlet
longchamp handbags
polo ralph lauren
canada goose jackets men
michael kors uk
cazal outlet
adidas nmd runner
christian louboutin
ugg boots clearance,ugg boots,ugg boots outlet,ugg boots for women,ugg boots on sale,ugg boots for men,ugg boots for kids,ugg boots clearance sale women,ugg boots clearance outlet
uggs outlet
mulberry handbags
coach factory outlet
ugg outlet store
oakley sunglasses wholesale
oakley sunglasses wholesale
ralph lauren?uk
true religion outlet
true religion outlet
mont blanc pens
michael kors outlet clearance
ray ban sunglasses
nike shoes
ugg clearance
michael kors handbags
uggs outlet
cheap jordans free shipping
fitflops uk
coach outlet store online
canada goose outlet
ferragamo shoes
coach outlet
coach outlet
air max trainers
michael kors outlet stores
cheap oakley sunglasses
canada goose outlet online
canada goose outlet store
michael kors outlet online
true religion outlet store
coach outlet
ugg outlet online
michael kors outlet clearance
adidas shoes
uggs outlet
michael kors outlet online
kobe shoes
longchamp handbags
air max 90
chrome hearts outlet
ugg outlet stores
cheap nfl jerseys
coach outlet online
michael kors outlet clearance
michael kors handbags outlet
michael kors uk
birkenstock shoes
ralph lauren uk
christian louboutin shoes
cheap oakley sunglasses
cheap ray ban sunglasses
adidas nmd
air force 1 shoes
swarovski jewellery
tory burch outlet online
coach outlet
cheap jordan shoes
longchamp handbags
oakley sunglasses wholesale
cheap oakley sunglasses
polo outlet stores
adidas shoes
michael kors outlet
christian louboutin
christian louboutin uk
ugg clearance
ralph lauren uk
coach outlet online
canada goose outlet
oakley sunglasses
coach outlet store online
pandora jewelry
chrome hearts online store
swarovski outlet
burberry outlet store
ralph?lauren
mbt shoes outlet
true religion canada
true religion jeans sale
vans outlet
coach outlet store online
adidas shoes
canada goose jackets for women
kate spade handbags
coach outlet online coach factory outlet
christian louboutin sale
foamposite shoes
hermes belts
cheap ray bans
coach outlet online
uggs outlet
ugg boots australia
polo outlet
ugg boots outlet
nfl jersey wholesale
michael kors outlet online
oakley sunglasses wholesale
cheap michael kors handbags
mlb jerseys
prada outlet
cheap jordans
fitflops
nike free running
mlb jerseys
michael kors outlet clearance
pandora jewellery
nike outlet store online
air max 90
herve leger dresses
salomon outlet
michael kors outlet clearance
oakley sunglasses
cheap soccer jerseys
ugg outlet
ralph lauren polo
nike shoes outlet
nike air huarache
adidas uk store
christian louboutin shoes
longchamp outlet
cheap uggs outlet,cheap uggs for sale,cheap ugg boots,cheap uggs for kids,cheap uggs for women,cheap uggs bailey bow,cheap uggs china,cheap uggs for men,cheap uggs for girls,cheap uggs boots for women
ugg boots,ugg boots outlet,cheap uggs boots,ugg boots for women,ugg boots on sale,ugg boots clearance,ugg boots clearance sale women,ugg boots clearance outlet,ugg boots for men,ugg boots for kids
ugg outlet store
coach outlet store online
uggs outlet
lebron shoes
ugg outlet
canada goose jackets
pandora outlet
thomas sabo charms
mont blanc outlet
adidas outlet
ralph lauren uk
pandora outlet
polo outlet store
michael kors outlet clearance
coach outlet online
coach outlet online
max 90
coach outlet clearance
nike air max 1
michael kors outlet
ralph lauren outlet
oakley sunglasses wholesale
puma shoes
cheap uggs
mac tools
cheap jerseys wholesale
kate spade uk
canada goose jackets outlet
mulberry outlet,mulberry handbags outlet
ralph lauren
true religion jeans
air max 90
michael kors outlet clearance
ray ban sunglasses uk
ysl outlet online
polo outlet stores
ralph lauren outlet
cheap football shirts
nike outlet store online
ugg boots clearance
michael kors outlet clearance
michael kors outlet clearance
longchamp handbags
christian louboutin shoes
cheap ray ban sunglasses
ray ban sunglasses uk
coach outlet store online
ralph lauren
michael kors outlet clearance
ray-ban sunglasses
longchamp outlet
ralph lauren
coach outlet
nike store uk
ugg outlet,ugg outlet sale,uggs outlet,ugg outlet online clearance,ugg outlet store,ugg outlet coupons,ugg outlet boots,ugg outlet online store
canada goose coats
coach outlet
coach outlet online
coach outlet
michael kors outlet online
christian louboutin shoes
tory burch sandals
michael kors outlet online
coach factory outlet
kd shoes
ugg outlet clearance,ugg outlet online clearance,ugg outlet,uggs outlet,ugg outlet store,ugg outlet coupons,ugg outlet boots,ugg outlet online store,ugg outlet sale
oakley sunglasses wholesale
michael kors outlet
nhl jerseys wholesale
coach factory outlet
michael kors outlet
ray ban sunglasses
hermes outlet store
mulberry bags
new balance outlet
coach outlet clearance
fitflops sale clearance
jordan shoes
coach factory outlet
jordan 4
true religion jeans outlet
canada goose uk
ray ban sunglasses wholesale
coach outlet
cheap ray ban sunglasses
michael kors outlet online
michael kors outlet clearance
soccer jerseys wholesale
reebok shoes
uggs outlet
ferragamo shoes
nike air max 90
michael kors handbags outlet
air max shoes
coach outlet
coach outlet store online
prada outlet
cheap jordans for sale
michael kors bags
ugg boots clearance
polo outlet
coach outlet online
michael kors handbags
nike roshe run
polo ralph lauren
ferragamo outlet
polo ralph lauren
cheap oakley sunglasses
mulberry handbags
ugg boots outlet
michael kors outlet store
cheap oakley sunglasses
coach outlet store online
reebok shoes
bottega veneta outlet online
ugg outlet clearance
polo ralph lauren outlet
coach outlet
michael kors outlet clearance
cheap oakley sunglasses
michael kors outlet online
christian louboutin shoes
coach factory outlet
coach outlet
hermes outlet
ugg outlet online
ralph lauren outlet
ralph?lauren?polo?shirts
canada goose jackets
mac outlet
ralph lauren shirts
burberry canada
mcm backpacks
prada sunglasses for women
ugg boots for women,ugg boots,ugg boots outlet,ugg boots on sale,ugg boots clearance,ugg boots for men,ugg boots for kids,ugg boots clearance sale women,ugg boots clearance outlet
ray ban wayfarer
Nike Free shoes
michael kors handbags
true religion outlet
yeezy boost 350
oakley sunglasses wholesale
nfl jerseys
nfl jersey wholesale
nike shoes uk
ugg boots clearance
canada goose jackets
ralph lauren outlet stores
cheap nfl jerseys
yeezy boost
nike uk store
coach outlet clearance
nfl jerseys
oakley sunglasses wholesale
ralph lauren outlet
true religion jeans
marc jacobs sale
fitflops sale clearance
longchamp bags
michael kors outlet
coach outlet
oakley sunglasses sale
lacoste outlet
true religion outlet
polo ralph lauren outlet
fitflops
michael kors outlet clearance
michael kors handbags
tory burch handbags
nike air max 90
hermes birkin bag
coach outlet online
michael kors outlet online
true religion uk
adidas shoes
adidas outlet
tory burch outlet
cheap jordan shoes
ugg boots,ugg boots outlet,ugg boots for women,ugg boots on sale,ugg boots clearance,ugg boots for men,ugg boots for kids,ugg boots clearance sale women,ugg boots clearance outlet
cheap oakley sunglasses
kate spade
canada goose outlet
lebron shoes
mulberry outlet
pandora jewelery
true religion jeans
pandora charms
burberry outlet store
oakley sunglasses
cheap ray ban sunglasses
mulberry uk
cheap oakley sunglasses
cheap oakley sunglasses
kate spade outlet online
nike trainers
cheap oakley sunglasses
kate spade handbags
michael kors outlet
polo outlet
polo ralph lauren outlet
birkenstock shoes
nike shoes for women
ralph lauren polo
coach factory outlet
canada goose
coach outlet
soccer cleats
coach outlet store online
oakley sunglasses
true religion jeans sale
cheap oakley sunglasses
michael kors outlet online
coach outlet clearance
supra shoes sale
nba jerseys wholesale
swarovski uk
mulberry outlet
coach handbags outlet
swarovski jewelry
valentino shoes
mulberry handbags sale
michael kors outlet online
christian louboutin outlet
canada goose jackets
ugg outlet
michael kors outlet clearance
christian louboutin shoes
pandora bracelet
los angeles lakers
swarovski crystal
tory burch outlet online
ray-ban sunglasses
oakley sunglasses wholesale
lacoste polo
michael kors uk
polo ralph lauren outlet
adidas wings shoes
coach factory outlet
coach outlet online
ugg outlet,uggs outlet,ugg outlet online clearance,ugg outlet store,ugg outlet coupons,ugg outlet boots,ugg outlet online store,ugg outlet sale
polo ralph lauren outlet
coach outlet online
cheap jerseys wholesale
coach outlet online
coach factory outlet
coach outlet online
cheap nba jerseys
nike outle
giuseppe zanotti shoes
michael kors outlet
nike outlet online
ralph lauren outlet
christian louboutin sale
nike roshe run
coach factory outlet
ugg boots clearance
tory burch outlet online
nike blazer pas cher
ralph lauren outlet
kate spade uk
canada goose jackets
snapback hats
canada goose outlet
swarovski jewelry
ecco outlet
polo ralph lauren
oakley sunglasses sale
true religion jeans
cheap jordan shoes
michael kors outlet clearance
coach outlet online
fitflops sale clearance
uggs outlet
cheap oakley sunglasses
cheap ray ban sunglasses
lacoste pas cher
basketball shoes,basketball sneakers,lebron james shoes,sports shoes,kobe bryant shoes,kobe sneakers,nike basketball shoes,running shoes,mens sport shoes,nike shoes
canada goose outlet
cheap ray ban sunglasses
coach outlet store online
ugg boots outlet
michael kors outlet online
cheap oakley sunglasses
polo ralph lauren
ferragamo outlet
polo ralph lauren
michael kors wallets for women
nike outlet
ray ban sunglasses
canada goose jackets
lacoste shirts
cheap oakley sunglasses
cheap mlb jerseys
coach outlet
coach outlet store online
oakley sunglasses wholesale
cheap jordan shoes
michael kors outlet online
ugg outlet,ugg outlet clearance,uggs outlet,ugg outlet online clearance,ugg outlet store,ugg outlet online store,ugg outlet sale,ugg outlet coupons,ugg outlet boots
nike air max
true religion outlet
polo ralph lauren
oakley sunglasses wholesale
camisetas futbol baratas
mbt shoes outlet
michael kors outlet clearance
ferragamo shoes
ray bans
michael kors outlet clearance
coach factory outlet
coach outlet store
michael kors outlet clearance
ralph lauren outlet
coach outlet
air max 2015
fitflops sale clearance
ugg outlet store
pandora charms sale clearance
ralph lauren
michael kors uk
nike trainers
fitflops
cleveland cavaliers jerseys
coach outlet
cheap oakley sunglasses
michael kors outlet clearance
cheap nike shoes
cheap ray ban sunglasses
kobe bryants shoes
converse shoes sale
coach factory outlet
cheap oakley sunglasses
coach outlet online
michael kors factory outlet
christian louboutin sale
ray ban sunglasses outlet
pandora outlet
ralph lauren outlet


Posted On: 10/6/2017 8:30:25 PM

mulberry sale
soccer jerseys
ugg boots
ugg boots
coach outlet online
michael kors outlet
canada goose outlet
coach handbags
ralph lauren polo shirts
ugg outlet
ray ban sunglasses
oakley sunglasses
michael kors outlet
swarovski crystal
cheap nhl jerseys
michael kors outlet
cheap uggs
coach outlet online
coach outlet
michael kors outlet
giuseppe zanotti outlet
michael kors outlet
canada goose jackets
coach outlet
canada goose jackets
marc jacobs outlet
adidas uk
coach outlet online
christian louboutin outlet
futbol baratas
canada goose
cazal sunglasses
cartier outlet
coach outlet
prada outlet
cheap uggs
nike outlet
canada goose outle
longchamp outlet
montblanc pens
ugg boots
michael kors bags
canada goose coats
coach outlet
nike foamposite
michael kors
ferragamo shoes
michael kors cyber monday
oakley sunglasses
christian louboutin outlet
ugg outlet
ugg boots
canada goose coats
ralph lauren uk
canada goose outlet
ugg outlet
ugg outlet
ugg outlet
canada goose jackets
coach outlet online
ugg cyber monday
nhl jerseys
coach outlet
ray ban sunglasses
ugg outlet
adidas outlet store
michael kors outlet
fitflops outlet
cheap uggs
canada goose outlet
ugg boots
swarovski crystal
christian louboutin shoes
adidas nmd
lebron james shoes
cheap jordans
soccer jerseys
mulberry outlet
christian louboutin outlet
canada goose outlet
michael kors black friday
ugg outlet
oakley sunglasses
longchamp outlet
true religion jeans
longchamp handbags
pandora jewelry
ray bans
kate spade outlet
canada goose coats
ralph lauren polo
michael kors outlet clearance
tods outlet
louboutin shoes
canada goose outlet
true religion outlet
nike shoes
ferragamo shoes
cheap jordans
jordan shoes
ugg boots
uggs outlet
ugg outlet
coach outlet
kevin durant shoes
canada goose black friday
christian louboutin shoes
coach handbags
basketball shoes
lacoste soldes
oakley sunglasses wholesale
canada goose outlet
kate spade outlet
michael kors outlet
air max 90
tory burch shoes
hermes belt
hermes outlet
true religion outlet
christian louboutin outlet
ugg outlet
longchamp outlet
ralph lauren polo
polo outlet
lakers jerseys
valentino outlet
yeezy boost 350
herve leger outlet
canada goose jackets
ralph lauren polo
polo shirts
canada goose outle
nike trainers
canada goose coats
ray ban sunglasses
michael kors
ugg outlet
oakley sunglasses
true religion jeans
oakley sunglasses
canada goose jackets
nba jerseys
canada goose outlet
longchamp solde
mulberry handbags
polo outlet
canada goose coats
michael kors
ralph lauren polo shirts
mulberry handbags
thomas sabo
mulberry handbags
longchamp handbags
prada shoes
coach outlet
michael kors outlet
canada goose jackets
canada goose jackets
ugg outlet
nike roshe
oakley sunglasses
reebok outlet store
christian louboutin shoes
christian louboutin outlet
ray ban sunglasses
michael kors outlet
moncler jackets
canada goose outlet
oakley sunglasses
michael kors handbags
canada goose outle
nike trainers
coach outlet online
coach outlet online
burberry outlet
coach factory outlet
coach outlet store online
michael kors outlet online
ugg outlet
michael kors handbags
canada goose outlet
nike factory outlet
swarovski crystal
oakley sunglasses
cheap ray bans
michael kors outlet
coach outlet canada
coach outlet
chrome hearts outlet
michael kors outlet online
michael kors handbags
canada goose outlet
tory burch outlet
swarovski outlet
air max 90
michael kors outlet
canada goose uk
michael kors factory outlet
michael kors outlet clearance
fitflops shoes
oakley sunglasses wholesale
kate spade outlet
cheap jordans
ugg outlet
ugg boots
ugg outlet
supra shoes
michael kors outlet online
air max 1
mulberry outlet
nba jerseys
cheap jerseys
michael kors outlet
air huarache
links of london
ugg outlet
vans shoes
michael kors
canada goose jackets
canada goose outlet
michael kors outlet online
christian louboutin online
canada goose jackets
polo ralph lauren
fitflops
fitflops
true religion jeans
michael kors outlet
soccer shoes
michael kors handbags
ferragamo outlet
canada goose outlet
ray ban sunglasses
coach factory outlet
oakley sunglasses
cleveland cavaliers jersey
ugg boots
canada goose jackets
cheap ugg boots
polo ralph lauren
ugg boots
converse shoes
cheap nfl jerseys
ugg outlet
fitflops sale clearance
true religion jeans
true religion jeans
mlb jerseys wholesale
canada goose jackets
canada goose outlet
ray ban sunglasses
nike trainers
canada goose parka
nike air max 2015
michael kors outlet
michael kors outlet online
pandora charms sale clearance
coach factory outlet
coach outlet
yeezy boost
true religion jeans
pandora charms
coach outlet
ralph lauren outlet
michael kors outlet
polo ralph lauren
fitflops sale clearance
mulberry bags
ugg outlet
pandora jewelry
cheap uggs
mcm outlet
coach outlet online
chrome hearts
coach outlet
ray ban sunglasses
michael kors
canada goose outlet
oakley sunglasses
chicago blackhawks jerseys
cheap uggs
ugg boots
swarovski outlet
true religion uk
oakley sunglasses
air max 90
ray ban sunglasses
ugg outlet
canada goose outlet
michael kors outlet
reebok trainers
lacoste polo shirts
canada goose uk
tory burch outlet
cheap jordans
mulberry handbags
burberry outlet
michael kors outlet online
oakley sunglasses
prada sunglasses
canada goose outlet
bottega veneta outlet
coach outlet
jordan shoes
football shirts
canada goose jackets
coach outlet
air jordan 4
canada goose coats
canada goose outlet
nike store
salomon shoes
hermes birkin
canada goose outlet
nike air max 90
michael kors outlet
kate spade outlet
cheap uggs
canada goose outlet
michael kors handbags
coach outlet online
polo ralph lauren
michael kors outlet
ferragamo outlet
canada goose outlet
nike air max
ralph lauren outlet
coach outlet
air huarache
ugg outlet
polo outlet
mulberry bags
kobe bryant shoes
michael kors handbags
oakley sunglasses
swarovski crystal
ray ban sunglasses
longchamp pas cher
canada goose jackets
mont blanc pens
tory burch outlet
coach outlet
ralph lauren uk
michael kors outlet
burberry outlet
nike shoes
air max uk
fitflops shoes
polo outlet
louboutin shoes
fitflops sale clearance
nfl jersey wholesale
michael kors outlet
adidas wings
coach factory outlet
tory burch outlet
canada goose outle
cheap snapbacks
pandora charms
coach outlet online
nfl jerseys wholesale
canada goose uk
ed hardy clothing
burberry outlet
coach factory outlet
nike air force 1
canada goose outlet
michael kors outlet
christian louboutin uk
oakley sunglasses
tory burch outlet
michael kors outlet
kobe 9
tory burch outlet
oakley sunglasses
ugg outlet
ugg boots
michael kors handbags
coach outlet online
canada goose outle
birkenstock sandals
cheap snapbacks
ray ban sunglasses
nike store uk
michael kors handbags
longchamp pliage
oakley sunglasses
coach outlet online
birkenstock outlet
oakley sunglasses
ugg black friday
kate spade outlet
michael kors outlet
uggs on sale
prada handbags
canada goose outlet
canada goose outle
canada goose jackets
canada goose uk
cheap nfl jerseys
ralph lauren polo
ugg outlet
polo ralph lauren
true religion jeans
longchamp handbags
ray ban sunglasses
canada goose jackets
ray ban sunglasses
coach factory outlet
true religion jeans
michael kors outlet
ugg boots
ray bans
ecco shoes
air max 90
true religion outlet
longchamp handbags
pandora jewelry
polo ralph lauren
ugg boots
coach outlet online
coach factory outlet
polo outlet
canada goose jackets
canada goose jackets
coach outlet online
nike free 5
coach outlet online
coach outlet
fitflops sale
nike outlet store
coach outlet
air max trainers
michael kors outlet
michael kors outlet online
oakley sunglasses
jordan shoes
canada goose outle
ugg boots
ugg boots
polo ralph lauren
puma outlet
ferragamo shoes
canada goose outlet
polo ralph lauren
ray ban sunglasses
canada goose outlet
ferragamo outlet
ugg boots
ray ban sunglasses
true religion jeans
mac cosmetics
michael kors outlet online
true religion jeans
canada goose coats
canada goose cyber monday
coach handbags
ysl outlet
hermes outlet
lebron james shoes
coach factory outlet
michael kors factory outlet
nike blazer pas cher
canada goose outlet
coach outlet
asics shoes
true religion outlet
ugg outlet
uggs outlet
cheap mlb jerseys
coach outlet online
mbt shoes
polo ralph lauren
fred perry polo shirts
cheap nfl jerseys
canada goose jackets
canada goose uk
coach factory outlet
ray-ban sunglasses
michael kors outlet clearance
michael kors wallets
canada goose jackets
ferragamo shoes
canada goose outlet
uggs outlet
ugg outlet
longchamp bags
michael kors outlet
new balance shoes
coach factory outlet
ugg outlet
coach outlet
coach outlet
kate spade outlet
ugg boots
canada goose jackets
tory burch outlet
ugg outlet
ray ban sunglasses
oakley sunglasses
adidas trainers
true religion jeans
adidas nmd
ugg outlet
longchamp solde
kobe shoes
nike roshe one
canada goose outlet
ralph lauren pas cher
michael kors outlet
20171007caihuali


Posted On: 10/11/2017 5:46:06 PM

After Pandora Store Sale explaining Moncler Outlet Store how Cromwell’s Pandora Outlet troopers Pandora Official Website “were Coach Bags On Sale taught New Air Max 2017 the value reebok running shoes of co-operation,” and how 23 IS BACK Store “Cromwell günstige nike schuhe built up his nike air jordan pas cher Cavalry on a foundation of Moncler Jackets Discount Marketplace high Official Toms Shoes Outlet individual efficiency,” he goes Cheap Real Jordans on to show nike tn pas cher that, Zapatillas Nike Air Max Baratas “as time Discount TOMS went on and Canada Goose Womens Coats armies Ugg Pas Cher Femme became nike sneakers larger, Hogan Outlet and Discount Ray Ban Sunglasses skill Adidas NMD For Sale at Hugo Boss Sale arms, as Air max levne a national Adidas Originals Sale characteristic, Nike Shox Cheap rarer, drill, Nike Shoes Online discipline, chaussure basket homme man?uvre in Ugg Outlet Online Store mass, Chaussure Air Max and Uggs For Cheap a high scarpe nike degree Nike Online Store of UGG Boots Cheap mobility Air Max Sneakers came longchamp bags on sale to Nike Shoes Sale Store outweigh all New Nike Shoes other Coach Outlet Store Online viiconsiderations; and Michael Kors Clearance when the new pandora charms necessity Reebok Outlet Store of Scarpe Nike Scontate arming the nations retro jordans for cheap brought Adidas Originals Stan Smith about nike jordan shoes short service, the Toms Factory Outlet training Cheap True Religion Jeans of nike shoes the individual, in vans shoe store any other Canada Goose Outlet branch zapatillas nike baratas of his business than Air Max 90 that christian louboutin outlet of riding Air Nike boot-to-boot Cheap Michael Kors Tote Bag and of Timberland Outlet rendering zapatos de futbol nike instant ????? ????? obedience to the Nike Shoes Discount Marketplace word or signal Cheap Michael Kors of Air Max Pas Cher his superior, nike air fell more Adidas Neo Discount Sale and Nike Kyrie more Yeezy Black into Adidas Shoes Discount Marketplace abeyance. Mens Nike Air Max Shock-tactics Chaussure Nike Pas Cher filled the entire Cheap Michael Kors Handbags bill, and Nike Air Pas Cher the Cavalry of Jordan Store Europe, adidas store admirably trained to man?uvre and Nike Air Damen attack, botas de futbol whether Nike Roshe Run by Cheap Nike Free Run the squadron Bottes Ugg Femme Pas Cher of Nike Polo Sale 150 sabres, prada outlet or Pandora Store the Discount Air Max division of asics sko 3,000 Nike Tn Requin Pas Cher or Doudoune Moncler Pas Cher 4,000, converse store was newest lebron shoes practically Chaussure Nike Air Max Pas Cher unfitted for any other Descuentos Nike duty. The Boutique Ugg climax huarache sneakers of TOMS OUTLET incompetency may UGGS For Women be said to have been Nike Air Max Sale reached during the nfl store cycle Air Max Femme of Nike joggesko European warfare, which Nike Air Shoes began with new yeezy shoes the Crimea, and ended Nike Shox discount Sale with TOMS STORE the Russo-Turkish adidas outlet conflict of 1877–78. Original Ugg Boots The Moncler Sale old Canada goose dam spirit Pandora Outlet Store of Nike Roshe Run Sale dash Scarpe Air Max and Yeezy Shoes Discount Marketplace daring TOMS For Sale under fire was Adidas Soccer Cleats Cheap still Toms Outlet Online conspicuous, discipline and mobility chaussures nike pas cher were pandora jewelry store never Michael Kors Outlet higher. Cheap Toms Shoes Outlet The fitflops sale uk regiments pandora beads man?uvred Nike Air Jordan 11 with admirable precision at Uggs Pas Cher Soldes the cheap nike air max highest womens nike air max speed, Christian Louboutin Heels and never had great masses Adidas Yeezy Cheap of horsemen Cheap Retro Jordans For Sale been more Abercrombie and fitch store easily controlled. And Nike Huarache Womens Cheap yet, nike sportschuhe in the whole Jordan Shoes Air history TOMS SHOES OUTLET of Adidas Yeezy Boost 350 For Sale war, it may Air max dam be Louboutin Wedding Shoes doubted Pandora Style Beads whether The official UGG the Doudoune Moncler Femme Pas Cher record of the UGG BOOTS FOR WOMEN Cavalry was canada goose jackets on sale ever Canada Goose Online Store more Cheap Nike Air Huarache meagre.”


Referring ugg factory outlet specially to chaussure adidas pas cher the suivre un envoi German Cavalry during Moncler Outlet Online the Cheap Air Max Trainers war Yeezy Men of Nike Factory Outlet 1870–71, Nike Air Huarache For Sale Henderson says: Jordan Sneakers For Sale “The Stone Island Outlet troopers Boty Nike Air knew nothing Nike Free Run 5.0 Womens whatever Cheap Air Max of louboutin heels fighting Ray Ban Sunglasses Online on nike sb stefan janoski foot—their movements Canada Goose Outlet were impeded by Kobe Shoes Nike their equipment--and Nike Air Sneakers a nike schuhe günstig few Adidas Originals Superstar Francs-tireurs, armed ADIDAS NMD SALE ON LINE with Cheap True Religion Jeans the chassepot, were Negozi Pandora enough to Cheap Louboutin Heels paralyze a Billige Nike Sko whole Adidas Superstar Sale Online brigade.... Nike Outlet In Yeezy Boost Sale Online fact, Moncler Outlet to the Nike Store student canada goose jacket outlet who follows air force one pas cher out cheap uggs the operations of the Michael Kors Cavalry of 1870–71 step cheap uggs for women by Nike Air 90 step, Michael Kors Handbags Discount and who Hyperdunk 2014 bears in Pandora Store mind ugg clearance its Cheap Toms Outlet Store deficiencies in Discount Christian Louboutin Shoes armament Boost Yeezy Sale On Line and training, it will new jordan releases appear Nike Air Max Cheap very Nike Pas Cher Femme doubtful Vans Black Sneakers whether a Ugg boots Sale strong Air Max Kopen body Cheap Nike Huarache of Zapatillas Air Max mounted Nike Soccer Cleats Boots riflemen of nike mercurial soccer cleats the same type coach factory outlet online as the toms shoes outlet Boers, or better Nike Outlet Store still, of Nike Air Max Goedkoop Sheridan’s ?????? ????? or Doudoune Moncler Site Officiel Stuart’s ugg store Cavalry Official NHL Jerseys in the last years of the War Nike Factory Store of Secession, would not Soccer Boots Outlet nike have Nike Air Women held the UGGS Outlet German horsemen Ugg Pas Cher En France at bay Air Jordan Retro Sale from the first Christian Louboutin Shoes Outlet moment they moncler jacket sale crossed Jordan Shoes For Cheap the Adidas Superstar frontier.”

dongdong
Posted On: 11/15/2017 5:56:16 AM

air max
ugg boots
kate spade
wholesale nfl jerseys
ugg boots
manchester united jersey
true religion jeans
supreme
canada goose
canada goose
tommy hilfiger canada
michael kors handbags
michael kors outlet
ralph lauren
nike outlet
north face jackets
moncler
kate spade handbags
louboutin
ugg outlet
ray ban sunglasses
ugg outlet
canada goose
nba jerseys
jordan shoes
oakley sunglasses
nike air max
canada goose outlet
north face
adidas stan smith
christian louboutin
birkenstock sandals
oakley sunglasses
soccer jerseys
salvatore ferragamo
oakley sunglasses cheap
ray ban sunglasses
coach outlet
moncler jassen
coach factory outlet
coach outlet
pandora charms
cheap nfl jerseys
north face
birkenstock sandals
ugg boots
ugg boots
ralph lauren outlet
polo ralph lauren
ralph lauren uk
prada outlet
bottes ugg
canada goose jackets
north face outlet
nfl jerseys
cheap nfl jerseys
the north face
canada goose outlet
jordans
canada goose outlet
pandora jewelry
uggs
moncler
ugg boots
michael kors outlet
longchamp outlet
moncler outlet
uggs outlet
ray ban sunglasses
ray ban sunglasses
hermes belt
nike air max
ugg boots
ralph lauren outlet
moncler
canada goose
air jordan
nike huarache
adidas jeremy scott
the north face
ugg outlet
ugg outlet
canada goose
true religion outlet
ray ban sunglasses
moncler
ugg boots
polo ralph lauren
polo ralph lauren
mlb jerseys
polo ralph
ralph lauren outlet
canada goose outlet
michael kors outlet online
true religion jeans
polo ralph lauren
vibram fivefingers
canada goose
moncler
coach outlet
jordans
michael kors outlet
longchamp outlet
uggs outlet
nhl jerseys
ugg
coach outlet
nike outlet
mont blanc pens
nike air max
moncler
moncler
oakley sunglasses
coach outlet
pandora jewelry
ugg outlet
ugg boots on sale
tory burch outlet
ugg boots on sale
uggs outlet
north face outlet
uggs outlet
ugg outlet
jordan shoes
mbt
canada goose
flip or flop
jordan shoes
nfl jerseys
canada goose outlet
north face
michael kors
mbt
michael kors
michael jordan shoes
uggs outlet
beats by dre
canada goose outlet
north face
ugg australia
mulberry
longchamp
coach wallets
kate spade outlet
ralph lauren outlet
uggs
air max
ugg boots
christian louboutin
coach outlet
longchamp
michael kors
cheap nfl jerseys
coach factory outlet
ugg outlet
ugg outlet
tory burch outlet
basketball shoes
cheap nhl jerseys
ugg boots
true religion
cheap ugg
ferragamo
north face
north face jackets clearance
ugg boots
ugg sale
nike shoes
ugg outlet
nike outlet
ugg outlet
nike roshe run
canada goose outlet
prada
rolex watches
hermes
juicy couture outlet
ugg outlet
ralph lauren
coach outlet
pandora uk
michael kors outlet
ugg boots
moncler jackets
moncler jackets
ugg australia
michael kors outlet
canada goose jassen
kors outlet
fitflops
ugg
ray ban sunglasses
pandora charms
kate spade outlet
coach outlet
ugg australia
adidas shoes
tory burch
canada goose uk
uggs on sale
adidas
uggs outlet
ugg outlet
adidas outlet
pandora jewelry
ralph lauren outlet
prada outlet
jordan retro
ray ban sunglasses
adidas yeezy boost
ugg boots
louboutin
red bottom shoes
ugg clearance
converse outlet
calvin klein outlet
ugg factory outlet
michael kors outlet
under armour outlet
cheap nfl jerseys
burberry scarf
coach outlet online
ralph lauren
goedkope uggs
snapbacks hats wholesale
oakley sunglasses
supreme clothing
polo ralph lauren
burberry outlet
kate spade outlet
hogan
coach outlet online
canada goose uk
sac longchamp
nike store
nike blazer shoes
christian louboutin
jordans
tory burch outlet
flip flops
coach outlet
ugg on sale
swarovski jewelry
north face uk
michael kors handbags
blackhawks jersey
uggs outlet
coach outlet
burberry outlet
burberry outlet
michael kors handbags
north face outlet
the north face
superdry clothing
christian louboutin
michaelkors outlet
ugg boots clearance
coach outlet
adidas
ralph lauren
red bottom shoes
nike huarache
ugg australia
ralph lauren outlet
ugg boots
canada goose
coach outlet
polo ralph
fitflops
pandora charms
coach factory outlet
prada
jordan shoes
nike outlet
uggs outlet
christian louboutin
manolo blahnik
true religion outlet
coach outlet online
ugg outlet
oakley sunglasses
moncler
michael kors
ugg australia
air max
coach bags
ugg outlet
north face outlet
michael kors outlet
ugg boots
kate spade outlet
ugg outlet
mont blanc pens
ugg boots
coach outlet online
ugg outlet
ray ban sunglasses
louboutin
oakley sunglasses
ugg boots
nike air max
birkenstock outlet
air jordans
pandora rings
coach outlet
new balance shoes
doudoune moncler
air jordan pas cher
north face
oakley sunglasses
supra shoes
nike air jordan
hermes outlet
ugg
replica watches
moncler jacka
nike air max
adidas football boots
ugg boots
mlb jerseys
hollister clothing
ugg boots
pandora charms
adidas stan smith
coach factory outlet
fitflops
ray ban
mont blanc
michael kors handbags
ugg boots
north face
polo ralph lauren
canada goose outlet
moncler
mulberry
michael kors
true religion
coach outlet online
ugg boots
hermes birkin handbags
the north face
coach factory outlet
nike football boots
jordans
oakley sunglasses
timberland
ugg australia
longchamp
ugg outlet
nike trainers
pandora jewelry
ugg boots clearance
cheap jordans
north face
oakley sunglasses
burberry scarf
coach outlet store online
louboutin
ray bans
coach outlet
nike air force 1
nike factory outlet
nfl jerseys
louboutin
fitflops
adidas store
polo ralph lauren
ugg boots
canada goose outlet
michael kors
ray ban sunglasses
canada goose
cheap nfl jerseys
adidas originals
michael kors outlet
cheap ugg boots
ugg boots
uggs outlet
michael kors outlet
baseball jerseys
cheap ugg boots
ray ban sunglasses
giuseppe zanotti
supreme new york
nike running shoes
adidas shoes
ugg boots
adidas wings
michael kors outlet
ralph lauren outlet
hollister outlet
ugg boots
michael kors handbags
mlb jerseys
nike air max
ferragamo
ugg boots
coach outlet online
201711.15wengdongdong

jeje222
Posted On: 11/19/2017 7:26:19 PM

nhl jerseys
air force 1
chrome hearts
adidas gazelle
kyrie shoes
yeezy shoes
tory burch outlet
chrome hearts
pandora jewelry
curry 3
yeezy boost
michael kors handbags
adidas outlet
yeezy boost
jordan 11 retro
lebron 13
longchamp sale
balenciaga sneakers
nmd
adidas superstar shoes
michael kors factory outlet
michael kors handbags
tory burch shoes
Kanye West shoes
nike zoom running shoe
nike air max 2017
yeezys
golden goose
curry 4
true religion
michael jordan shoes
fitflops
hermes belt
nike roshe run
kobe basketball shoes
adidas outlet
cartier bracelet
kate spade outlet
yeezy boost 350 v2
nfl jerseys
kobe basketball shoes
air jordan 13
adidas tubular
led shoes for kids
kobe byrant shoes
vans shoes
links of london sale
yeezy boost 350
chrome hearts online
pandora charms
cheap mlb jerseys
yeezy boost 350
links of london
hermes belts
jordan 12
nike roshe uk
gucci belt
yeezy boost
yeezy boost
supreme hoodie
adidas nmd
nike huarache
http://www.kobeshoes.uk
kyrie 3
jordan retro 6
kyrie irving shoes
nike air force 1
birkin bag
michael kors outlet
jordan shoes
reebok outlet
vibram fivefingers
nike huarache
100% real jordans for cheap
curry shoes
lebron shoes
calvin klein outlet
light up shoes
air jordans
michael kors outlet
curry 4
adidas ultra boost
adidas tubular
nike air max
kobe 11
yeezy boost 350 v2
nike roshe run
100% real jordans for cheap
golden goose sneakers
hogan outlet
nike polo shirts
adidas stan smith shoes
atlanta falcons jersey
goyard handbags
nmd
kobe sneakers
nike zoom
converse outlet
true religion
lacoste online shop
air max 90
adidas neo
tom ford sunglasses
nike air max 90
chrome hearts
nike air max 90
adidas superstar
yeezy boost 350
adidas ultra boost
birkin bag
ferragamo belt
adidas nmd r1
adidas tubular shadow
fitflops
nike dunk shoes
adidas outlet online
links of london outlet store
michael kors outlet store
adidas ultra
hermes handbags
longchamps
lebron 14
air jordan
roshe shoes
jordan 6
jordan 11
nike air zoom
lebron 15
jordan 13
cheap jordans
nmd
golden goose
asics shoes
lebron 13 shoes
longchamp longchamps
michael kors factory outlet
air max 2018
kobe shoes
yeezy shoes
real jordans for sale cheap
bape hoodie
longchamp bags
retro jordans
jordan retro 12
nike polo
hermes belt
cheap jordans
adidas superstar shoes
yeezy shoes
links of london
roshe run
adidas stan smith
hermes birkin
jordan 4
van cleef arpels
lebron 14 shoes
asics running shoes
nike air huarache
kate spade handbags
longchamp
longchamp
pandora charms
adidas nmd
stephen curry shoes
air yeezy
nike air force 1
authentic jordans
ysl bags
adidas yeezy boost
kevin durant shoes
air max 2017
michael kors outlet
mlb jerseys
yeezy shoes
adidas outlet
adidas stan smith sneakers
adidas tubular shadow
lacoste outlet
jordan retro
nike foamposite
nike huarache
adidas nmd
adidas nmd
kobe 9
longchamp
kd shoes
adidas online shop
nike dunks
air jordan
louboutin shoes
basketball shoes
vans shoes
balenciaga sneakers
cheap jordans
yeezy boost 350
yeezy boost 350 v2
led shoes
timberland boots
patriots jersey
nike mercurial
fitflops sale clearance
retro jordans
kobe shoes
michael kors outlet online
calvin klein outlet online
bape hoodie
moncler outlet
yeezy boost
tory burch shoes
yeezy boost 350
gucci belts
nike zoom
yeezy boost 350 v2
adidas tubular
falcons jersey
dior glasses
air jordan shoes
jordan shoes
adidas store
hermes belt
reebok shoes
nike roshe one
balenciaga shoes
jordan shoes
nike air force
longchamp outlet
cheap jordans
yeezy boost 350 v2
kyrie 4
converse shoes
air max 90
yeezy
kobe 11
kobe shoes
vans outlet
longchamp bags
new england patriots jersey
air max 2016
michael kors outlet
supreme clothing
kyrie 4
converse outlet
longchamp bags
yeezys
basketball shoes
cheap jordans
michael kors outlet
tom ford eyewear
adidas outlet online
michael kors outlet online
nike football boots
lacoste polo
louboutin shoes uk
cheap jordans
michael kors handbags
pandora bracelet
cheap basketball shoes
curry 3 shoes
longchamp handbags
hogan outlet online
adidas ultra boost uncaged
longchamp bags
michael kors
michael kors uk
adidas superstar
lebron james shoes
birkin bag
nike air force
timberland outlet
converse outlet store
longchamp outlet
ferragamo belts
adidas eqt
adidas stan smith
longchamp handbags
moncler jackets
michael jordan shoes
yeezy boost 350
true religion jeans
vibram five fingers
adidas online shop
yeezy
jordan shoes
pandora jewelry
yeezy boost 350
jordan shoes
air max
adidas yeezy
nike air huarache
adidas tubular
nike air max
nike air max 2018
golden goose
lebron 15
michael kors handbags
kobe 9
prada glasses
adidas nmd
af1
chrome hearts online
yeezy shoes
ysl handbags
yeezy boost 350
kate spade outlet online
nike basketball shoes
harden shoes
http://www.kobebasketballshoes.us.com
goyard bags
balenciaga shoes
golden goose sneakers
adidas yeezy
adidas nmd runner
nike air zoom
hermes belts for men
michael kors outlet
yeezy shoes
true religion outlet
van cleef
retro jordans
adidas shoes
james harden shoes
prada sunglasses
ultra boost
air jordan shoes
lacoste outlet
golden goose outlet
cheap nfl jerseys
kyrie 3 shoes
dior sunglasses
michael kors outlet online
brady jersey
adidas ultra boost
air force 1
led shoes