Example #1
0
int StringChunk_Add(StringChunk *dl,
					const char *Str,
					const char *AdditionalData,
					int LengthOfAdditionalData /* The length will not be stored. */
					)
{
	EntryForString NewEntry;

	if( AdditionalData != NULL && LengthOfAdditionalData > 0 )
	{
		_32BIT_INT OffsetOfStoredTo;

		char *DataStoredTo =
						ExtendableBuffer_Expand(&(dl -> AdditionalDataChunk),
						LengthOfAdditionalData,
						&OffsetOfStoredTo
						);

		if( DataStoredTo == NULL )
		{
			return -1;
		}

		NewEntry.OffsetOfData = OffsetOfStoredTo;

		memcpy(DataStoredTo, AdditionalData, LengthOfAdditionalData);

	} else {
		NewEntry.OffsetOfData = -1;
	}

	if( ContainWildCard(Str) )
	{
		NewEntry.OffsetOfString = StringList_Add(&(dl -> List_W), Str, ',');

		if( NewEntry.OffsetOfString >= 0 )
		{
			Array_PushBack(&(dl -> List_W_Pos), &NewEntry, NULL);
		} else {
			return -1;
		}
	} else {
		NewEntry.OffsetOfString = StringList_Add(&(dl -> List), Str, ',');

		if( NewEntry.OffsetOfString >= 0 )
		{
			HashTable_Add(&(dl -> List_Pos), Str, 0, &NewEntry, NULL);
		} else {
			return -2;
		}
	}

	return 0;

}
Example #2
0
int GetHostsByRaw(const char *RawPackage, StringList *out)
{
	int AnswerCount = DNSGetAnswerCount(RawPackage);

	int loop;
	const char *AnswerRecordPosition;
	const char *DataPos;

	int IpAddressCount = 0;

	char Data[] = "               ";

	for( loop = 1; loop <= AnswerCount; ++loop )
	{
		AnswerRecordPosition = DNSGetAnswerRecordPosition(RawPackage, loop);

		if( DNSGetRecordType(AnswerRecordPosition) == DNS_TYPE_A )
		{
			DataPos = DNSGetResourceDataPos(AnswerRecordPosition);

			DNSParseData(RawPackage, DataPos, 1, Data, sizeof(Data), DNS_RECORD_A, NUM_OF_DNS_RECORD_A, 1);

			StringList_Add(out, Data, ',');

			++IpAddressCount;
		}
	}

	return IpAddressCount;
}
Example #3
0
void CxDlgTablePrimaryKey::OnOK() 
{
	CDialog::OnOK();
	ASSERT (m_pKeyParam);
	if (!m_pKeyParam)
		return;
	if (!m_bAlter)
	{
		m_strKeyName.TrimLeft();
		m_strKeyName.TrimRight();
		lstrcpy (m_pKeyParam->tchszPKeyName, m_strKeyName);
	}
	//
	// Get the list of column of primary key:
	if (!m_bAlter)
	{
		m_pKeyParam->pListKey = StringList_Done (m_pKeyParam->pListKey);
		CString strItem;
		int i, nCount = m_cListKey.GetCount();
		for (i=0; i<nCount; i++)
		{
			m_cListKey.GetText (i, strItem);
			m_pKeyParam->pListKey = StringList_Add (m_pKeyParam->pListKey, strItem);
		}
	}
	if (m_bAlter)
		m_pKeyParam->nMode = m_nDelMode;
}
Example #4
0
void CxDlgObjectComment::OnOK()
{
	CString csTempo,csNameCol,csSyntaxObject,csVNodeName,csSQLSyntax;
	LPCOMMENTCOLUMN lpCommentCol;
	LPSTRINGLIST lpStrList = NULL;
	BOOL bGenerate;
	int i,iret,nCount = m_cListCtrl.GetItemCount();
	csVNodeName = (LPTSTR)GetVirtNodeName(m_nNodeHandle);
	csSyntaxObject.Empty();

	m_cListCtrl.HideProperty(TRUE);

	m_cEditTableComment.GetWindowText(m_csCommentObject);

	if (!m_tcObjComment && !m_csCommentObject.IsEmpty()) // new comment on general object
		GenerateSyntaxComment4Object(csSyntaxObject);
	else if (m_tcObjComment && (x_strcmp(m_csCommentObject,m_tcObjComment)!=0) ) // comment exist 
		GenerateSyntaxComment4Object(csSyntaxObject);

	for (i=0; i<nCount; i++)
	{
		csSQLSyntax.Empty();
		bGenerate = FALSE;
		csNameCol = m_cListCtrl.GetItemText (i,0);
		csTempo   = m_cListCtrl.GetItemText (i,1);

		lpCommentCol = FindCurrentColumn(csNameCol);
		ASSERT(lpCommentCol != NULL);

		if (lpCommentCol->lpszComment)
		{
			if (x_strcmp(lpCommentCol->lpszComment,(LPTSTR)(LPCTSTR)csTempo)!=0)
				bGenerate = TRUE;
		}
		else
		{
			if (!csTempo.IsEmpty())
				bGenerate = TRUE;
		}
		if (bGenerate)
		{
			csSQLSyntax.Format("comment on column %s.%s.%s is '%s'",
			QuoteIfNeeded((LPTSTR)(LPCTSTR)m_csObjectOwner), 
			QuoteIfNeeded((LPTSTR)(LPCTSTR)m_csObjectName), 
			QuoteIfNeeded((LPTSTR)lpCommentCol->szColumnName), 
			(LPCTSTR)csTempo);
			lpStrList = StringList_Add  (lpStrList, (LPTSTR)(LPCTSTR)csSQLSyntax);
		}
	}

	// execute the SQL statements
	iret =  VDBA20xGenCommentObject ( (LPSTR)(LPCTSTR)csVNodeName,(LPSTR)(LPCTSTR)m_csDBName,
	                                  (LPSTR)(LPCTSTR)csSyntaxObject, lpStrList);

	if (lpStrList)
		lpStrList = StringList_Done (lpStrList);

	if (iret != RES_SUCCESS)
	{
		ErrorMessage ((UINT) IDS_E_COMMENT_ON_FAILED, RES_ERR);
		return;
	}

	CDialog::OnOK();
}