public void dupKeyCheck(final String tableName, final String[] doCols, final String[] sqlValues) throws java.sql.SQLException
   {
		 final FakeTable fakeTable=fakeTables.get(tableName);
		 if (fakeTable==null) throw new java.sql.SQLException("unknown table "+tableName);
		final List<Backend.FakeCondition> conditions=new ArrayList<Backend.FakeCondition>(2);
		for(int i=0;i<doCols.length;i++)
		{
			final int id=fakeTable.findColumn(doCols[i]);
			if (id<0) continue;
			final FakeColumn col = fakeTable.columns[id];
			if(col.keyNumber >= 0)
			{
				final Backend.FakeCondition condition = buildFakeCondition(fakeTable.name, col.name, "=", sqlValues[i], false);
				condition.connector = Backend.ConnectorType.AND;
				conditions.add(condition);
			}
		}
		if(conditions.size()==0) return;
		final FakeConditionResponder responder = new FakeConditionResponder()
		{
			@Override
			public void callBack(ComparableValue[] values, RecordInfo info) throws Exception
			{
				throw new java.sql.SQLException("duplicate key error");
			}
		};
		try
		{
			fakeTable.recordIterator(conditions,responder);
		}
		catch(final Exception e)
		{
			throw new java.sql.SQLException(e.getMessage());
		}
   }