mssql - usage and examples?

Hello,

does somebody have an mssql example?

I have these definition:

define('db_RDBMS', 'mssql');
define('db_Username', 'mstest');
define('db_Password', 'coco');
define('db_Server', 'xxxx');
define('db_Port', '1433');
define('db_Database', 'xxxx');
?>

in db.php

then when I try to load the page I get:

Notice: "Use of undefined constant fwDB_Server - assumed 'fwDB_Server'" in file /db/mssql.php (on line 55)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 55 error_debug_handler (8, "Use of undefined constant fwDB_Server - assumed 'fwDB_Server'", "/home/vitalie/php/zoop/db/mssql.php", 55, )
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Notice: "Use of undefined constant fwDB_Username - assumed 'fwDB_Username'" in file /db/mssql.php (on line 56)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 56 error_debug_handler (8, "Use of undefined constant fwDB_Username - assumed 'fwDB_Username'", "/home/vitalie/php/zoop/db/mssql.php", 56, )
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Notice: "Use of undefined constant fwDB_Password - assumed 'fwDB_Password'" in file /db/mssql.php (on line 57)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 57 error_debug_handler (8, "Use of undefined constant fwDB_Password - assumed 'fwDB_Password'", "/home/vitalie/php/zoop/db/mssql.php", 57, )
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Notice: "Use of undefined constant fwDB_Database - assumed 'fwDB_Database'" in file /db/mssql.php (on line 58)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 58 error_debug_handler (8, "Use of undefined constant fwDB_Database - assumed 'fwDB_Database'", "/home/vitalie/php/zoop/db/mssql.php", 58, )
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_pconnect() [function.mssql-pconnect]: Unable to connect to server: fwDB_Server" in file /db/mssql.php (on line 134)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 134 mssql_pconnect ("fwDB_Server", "fwDB_Username", "fwDB_Password")
/db/mssql.php 61 sql_pconnect ("fwDB_Server", "fwDB_Username", "fwDB_Password")
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_query() [function.mssql-query]: Called dbopen with parameter 2 NULL (severity 11)" in file /db/mssql.php (on line 323)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 323 mssql_query ("select @@ERROR as ErrorNo")
/db/mssql.php 115 mssql_error ("")
/db/mssql.php 63 sql_error ()
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_query() [function.mssql-query]: Unable to connect to server: (null)" in file /db/mssql.php (on line 323)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 323 mssql_query ("select @@ERROR as ErrorNo")
/db/mssql.php 115 mssql_error ("")
/db/mssql.php 63 sql_error ()
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_query() [function.mssql-query]: A link to the server could not be established" in file /db/mssql.php (on line 323)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 323 mssql_query ("select @@ERROR as ErrorNo")
/db/mssql.php 115 mssql_error ("")
/db/mssql.php 63 sql_error ()
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource" in file /db/mssql.php (on line 326)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 326 mssql_fetch_array ("")
/db/mssql.php 115 mssql_error ("")
/db/mssql.php 63 sql_error ()
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_free_result(): supplied argument is not a valid MS SQL-result resource" in file /db/mssql.php (on line 330)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 330 mssql_free_result ("")
/db/mssql.php 115 mssql_error ("")
/db/mssql.php 63 sql_error ()
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "mssql_select_db(): supplied argument is not a valid MS SQL-Link resource" in file /db/mssql.php (on line 165)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/mssql.php 165 mssql_select_db ("fwDB_Database", "")
/db/mssql.php 69 sql_select_db ("fwDB_Database", "")
/db/db_component.php 35 include ("/home/vitalie/php/zoop/db/mssql.php")
/zoop.php 246 component_db->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/vitalie/php/zoop/app/error.php:66)" in file /session/session_component.php (on line 50)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/session/session_component.php 50 session_start ()
/zoop.php 246 component_session->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")
Warning: "session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/vitalie/php/zoop/app/error.php:66)" in file /session/session_component.php (on line 50)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/session/session_component.php 50 session_start ()
/zoop.php 246 component_session->init ()
/home/vitalie/php/msquery_db/ver08/includes.php 52 zoop->init ()
/home/vitalie/php/msquery_db/ver08/index.php 3 include_once ("/home/vitalie/php/msquery_db/ver08/includes.php")

Any expert in here? What would cause that? I can connect via mssql PHP extension from a simple php file, but I wan to integrate it in ZOOP to take advantage of framework...

Please any suggestion would be helpfull.

Thank you.

mssql example

This is in my db.php:

define('db_RDBMS', 'mssql');
define('db_Username', 'user');
define('db_Password', 'pass');
define('db_Server', '10.11.12.13');
define('db_Port', '1433');
define('db_Database', 'test_db');

In the db directory I made changes to the original file mssql.php. The new contents are:
<?php
/**
* @package db
* @subpackage mysql
*/
// Copyright (c) 2008 Supernerd LLC and Contributors.
// All Rights Reserved.
//
// This software is subject to the provisions of the Zope Public License,
// Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
// THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
// WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
// FOR A PARTICULAR PURPOSE.
 
function sql_connect()
{
	if (!isset($GLOBALS['defaultdb']) || $GLOBALS['defaultdb'] == NULL)
	{	
		$GLOBALS['defaultdb'] = &new database(database::makeDSN(db_RDBMS, db_Server, db_Port, db_Username, db_Password, db_Database));
	}
}
 
function sql_begin_transaction( $Db = -1 )
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->begin_transaction();
	return $return;
}
 
function sql_commit_transaction( $Db = -1 )
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->commit_transaction();
	return $return;
}
 
function sql_rollback_transaction( $Db = -1 )
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->rollback_transaction();
	return $return;
}
 
function sql_query( $inQueryString, $Db = -1 )
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->query($inQueryString);
	return $return;
}
 
function sql_get_fields($table)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->get_fields($table);
	return $return;
}
 
function sql_insert($query)
{
	sql_connect();
	global $defaultdb;
	$defaultdb->insert($query);
	return sql_fetch_one_cell('select scope_identity()');
}
 
function sql_fetch_sequence( $sequence )
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_sequence($sequence);
	return $return;
}
 
///////////////////////////////////////////////
//	Query returns true if rows are returned  //
///////////////////////////////////////////////
 
function sql_check($query)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->check($query);
	return $return;
}
 
function sql_fetch_into_arrays($query)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_into_arrays($query);
	return $return;
 
}
 
function sql_fetch_into_arrobjs($query)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_into_arrobjs($query);
	return $return;
}
 
 
//	this is a stupid function name.  Please use sql_fetch_column below
function sql_new_fetch_into_array($query)
{
	sql_connect();
	return sql_fetch_column($query);
}
 
function sql_fetch_column($query)
{
	sql_connect();
	global $defaultdb;
	//	the database clas should also create fetch_column and depricate
	//	new_fetch_into_array
	$return = $defaultdb->new_fetch_into_array($query);
	return $return;
}
 
function sql_fetch_into_array($inTableName, $inFieldName, $inExtra = "")
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_into_array($inTableName, $inFieldName, $inExtra);
	return $return;
}
 
function sql_fetch_one($inQueryString)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_one($inQueryString);
	return $return;
}
 
function sql_fetch_assoc($inQuery)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_assoc($inQuery);
	return $return;
}
 
function sql_fetch_rows($inQuery, $inReturnObjects = 0)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_rows($inQuery, $inReturnObjects);
	return $return;
}
 
function sql_fetch_map($inQuery, $inKeyField)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_map($inQuery,$inKeyField);
	return $return;
}
 
 
function sql_fetch_simple_map($inQuery, $inKeyField, $inValueField)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_simple_map($inQuery, $inKeyField, $inValueField);
	return $return;
}
 
 
function sql_fetch_complex_map($inQuery, $inKeyField)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_complex_map($inQuery, $inKeyField);
	return $return;
}
 
 
function sql_fetch_one_cell($inQueryString, $inField = 0)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_one_cell($inQueryString, $inField);
	return $return;
}
 
function &sql_prepare_tree_query($inQueryString, $idField = "id", $parentField = "parent")
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->prepare_tree_query($inQueryString, $idField, $parentField);
	return $return;
}
 
function &sql_better_fetch_tree( $inQueryString, $rootNode, $idField = "id", $parentField = "parent", $depth = -1)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->better_fetch_tree($inQueryString,$rootNode,$idField,$parentField, $depth);
	return $return;
}
 
function &sql_fetch_tree( $inQueryString, $rootNode, $idField = "id", $parentField = "parent")
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_tree($inQueryString,$rootNode,$idField,$parentField);
	return $return;
}
 
//	inQuerystring can be a map (php array/hashtable), and then it will use the map instead of querying the database....
//	This helps in making multiple calls when you need separate arrays for each parent node's children.
//	Might be too much of a secret hack though - at least the var name should probably be changed
 
function &sql_fetch_children( $inQueryString, $rootNode, $idField = "id", $parentField = "parent")
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_children($inQueryString,$rootNode,$idField,$parentField);
	return $return;
}
 
function &sql_better_fetch_children( $inQueryString, $rootNode, $idField = "id", $parentField = "parent", $depth = -1)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->better_fetch_children($inQueryString,$rootNode,$idField,$parentField);
	return $return;
}
 
function &sql_fetch_parents($inQueryString, $leafNode, $idField = "id", $parentField = "parent")
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->fetch_parents($inQueryString,$leafNode,$idField,$parentField);
	return $return;
}
 
function sql_get_table_info($Table)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->get_table_info($Table);
	return $return;
}
 
function ticks($inString)
{
	if($inString === NULL)
		return "NULL";
	else if($inString == "NULL")
		return $inString;
	else
	{
		return "'$inString'";
	}
}
 
function sql_escape_string($inString)
{
	sql_connect();
	global $defaultdb;
	$return = $defaultdb->escape_string($inString); return $return;
}
 
function makeDate($Year, $Month = 1, $Day = 1)
{
	if($Year == "")
	{
		$Date = "NULL";
	}
	else
	{
		if($Month == 0)
			$Month = 1;
 
		$Month = str_pad($Month, 2, "0", STR_PAD_LEFT);
 
		if($Day == 0)
			$Day = 1;
 
		$Day = str_pad($Day, 2, "0", STR_PAD_LEFT);
 
		$Date = "$Year-$Month-$Day";
	}
 
	return $Date;
}
 
?>

Please try with this new information

Jayesh Wadhwani

jwadhwani 30 Mar 2009

mssql.php

Thanks for this, it will be committed very soon.

john 31 Mar 2009

Forms2 is not calling mssql....I get that from PDO_database.php

Why would I get an object does not exist from PDO_database since I am trying to connect via mssql.php?

My php connects just fine with mssql via FreeTDS library...I want to build Forms2 to integrate with that functionality and looks like some functions are not mapped correctly in here since I get a call to PDO...even if I call mssql in conection string...

Please advice on that.

Thanks.

bugaian

Notice: "db object does not exist, it is likely the connection failed. PDO reported: could not find driver" in file /db/PDO_database.php (on line 104)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/PDO_database.php 104 trigger_error ("db object does not exist, it is likely the connection failed. PDO reported: could not find driver")
/db/PDO_database.php 18 database->error ()
/forms/forms.php 59 database->database ()
/forms/forms.php 74 form->sql_connect ("defaultdb")
/forms/forms2.php 84 form->initTable ("Switch")
/home/vitalie/php/msquery_db/ver08/zones/default.php 132 form2->form2 ("Switch", "list")
/zone/zone.php 478 zone_default->pageListUsers ()
/zone/zone.php 377 zone->_checkFuncs ("ListUsers", )
/zone/zone_component.php 74 zone->handleRequest ()
/zoop.php 265 component_zone->run ()
/home/vitalie/php/msquery_db/ver08/index.php 15 zoop->run ()

bugaian 02 Apr 2009

PDO

You do not have to use PDO.

Set 'use_pdo' in db/defaultConstants.php to false and check.

Jayesh Wadhwani

jwadhwani 02 Apr 2009

Incorrect mssql syntax is generated....where can I change it?

I did some investigation and found out that:

MSSQL does not support a LIMIT statement in SQL SELECT...

The query that gets generated by database.php is this one:

SELECT * FROM Switch where 1 = 1 ORDER BY SwitchName ASC LIMIT 25 OFFSET 0;

The running query(Supported by Microsoft...) is this one:

1) SELECT top 25 * FROM Switch where 1 = 1 ORDER BY SwitchName ASC

To implement a limit/offset combination I would need something like:

SELECT * FROM (SELECT s.* ,ROW_NUMBER() OVER (ORDER BY SwitchName) AS rnum FROM Switch s) a WHERE rnum<=10 AND rnum>=6;

Please give me some hits what to modify where to make it working.

Thank you.

bugaian

Notice: "PearDB returned an error. The error was DB Error: syntax error" in file /db/database.php (on line 197)
PHP Backtrace
File: Line: Function:
/app/error.php 77 fetch_backtrace ()
/db/database.php 197 trigger_error ("PearDB returned an error. The error was DB Error: syntax error")
/db/database.php 252 database->error ()
/db/database.php 461 database->getAll ("SELECT * FROM Switch where 1 = 1 ORDER BY SwitchName ASC LIMIT 25 OFFSET 0")
/forms/table.php 588 database->fetch_rows ("SELECT * FROM Switch where 1 = 1 ORDER BY SwitchName ASC LIMIT 25 OFFSET 0")
/gui/plugins/function.forms_list.php 169 table->getRecords ()
/gui/plugins/function.forms2.php 45 smarty_function_forms_list (, )
/home/vitalie/php/msquery_db/ver08/tmp/gui/%%D5^D54^D54D4A37%%form2.tpl.php 7 smarty_function_forms2 (, )
/gui/Smarty.class.php 1868 include ("/home/vitalie/php/msquery_db/ver08/tmp/gui/%%D5^D54^D54D4A37%%form2.tpl.php")
/gui/gui.php 237 Smarty->_smarty_include ()
/home/vitalie/php/msquery_db/ver08/tmp/gui/%%84^843^843D0573%%main.tpl.php 46 gui->_smarty_include ()
/gui/Smarty.class.php 1262 include ("/home/vitalie/php/msquery_db/ver08/tmp/gui/%%84^843^843D0573%%main.tpl.php")
/gui/gui.php 183 Smarty->fetch ("default/main.tpl", "", "")
/gui/gui.php 213 gui->fetch ("main.tpl", "", "")
/gui/gui.php 292 gui->display ("main.tpl")
/home/vitalie/php/msquery_db/ver08/zones/default.php 146 gui->generate ("forms/form2.tpl", "blank.tpl", "mainmenu.tpl", "Switch")
/zone/zone.php 478 zone_default->pageListUsers ()
/zone/zone.php 377 zone->_checkFuncs ("ListUsers", )
/zone/zone_component.php 74 zone->handleRequest ()
/zoop.php 265 component_zone->run ()
/home/vitalie/php/msquery_db/ver08/index.php 15 zoop->run ()

bugaian 02 Apr 2009

Works good

Hi jwadhwani,

thanks for the post. I modified the code and it looks good.

I am going to do more testing and let you know.

Thanks.

bugaian

bugaian 31 Mar 2009

I had to modify the original forms/table

Here is the modified query that will work for MSSQL:

function getRecords() # LIMIT OF -1 GIVES YOU ALL THE RECORDS
{
$dbconnname = $this->dbconnname;
global $$dbconnname;

$this->setupRequirements();

$this->records = NULL; # FIRST UNSET ALL THE CURRENT RECORDS

$this->getTotal();

if ($this->cur < 1)
$this->cur = 0;

// SELECT * FROM Switch where 1 = 1 ORDER BY SwitchName ASC LIMIT 25 OFFSET 0;
//SELECT * FROM (SELECT s.* ,ROW_NUMBER() OVER (ORDER BY SwitchName) AS rnum FROM Switch s) a WHERE rnum<=25 AND rnum>=0 ORDER BY SwitchName ASC;
$query = "SELECT * FROM (SELECT s.* , ROW_NUMBER() OVER (ORDER BY $this->sort) AS rnum FROM $this->name s) a $this->wherestr" ;
//$query = SELECT * FROM Switch where 1 = 1;
if ($this->limit != -1 && is_numeric($this->limit))
$query .= " AND (rnum<=$this->limit";
$query .= " AND rnum>=$this->cur)";

if (isset($this->sort))
$query .=" ORDER BY $this->sort";

if (isset($this->sort) && isset($this->direction) && ($this->direction == "ASC" || $this->direction == "DESC"))
$query .= " $this->direction";

//if ($this->limit != -1 && is_numeric($this->limit))
//$query .= " LIMIT $this->limit OFFSET $this->cur";

$this->sql = $query;
$results = $$dbconnname->fetch_rows($query);
foreach ($results as $array)
{
$idfield = $this->idfield;
$id = $array[$idfield];

$this->records[$id] = new record($this->name, $id, $idfield, $dbconnname, $array);
}
}

bugaian 03 Apr 2009

642-892 braindumps

642-892 braindumps ||
310-200 braindumps ||
117-101 braindumps ||
640-461 braindumps ||
350-050 braindumps ||
1Y0-A08 braindumps ||
1z0-042 braindumps ||
70-298 braindumps ||

I completely agree with you. I really like this article. It contains a lot of useful information. I can set up my new idea from this post.

Leo123 09 Dec 2011