void GetRemovableDrives (std::vector<std::wstring>& logicalDrives)
{
TCHAR buf[512];
TCHAR* rootPathName = buf;
BOOL hasVolumeInfo;
UINT driveType;
if (0==GetLogicalDriveStrings (512-1, buf))
return;
do
{
driveType = GetDriveType (rootPathName);
hasVolumeInfo = GetVolumeInformation (rootPathName,
NULL, 0,
NULL, NULL, NULL,
NULL, 0);
if (driveType==DRIVE_REMOVABLE && hasVolumeInfo==TRUE)
{
logicalDrives.push_back (std::wstring (rootPathName) );
}
while (*rootPathName++);
} while (*rootPathName);
}
하지만 모든 이들이 같은 길을 가는 것은 아니고 그 평범한 부류에 속하지 못하는 이들도 적잖다. 이런저런 문제로 들이닥친 어려움을 이기지 못한 채 다소 어긋난 길로 들어서고 그로인해 세상이 임의대로 부여하는, 단순히 점수라는 수치적 잣대로 인해 원치 않은 딱지를 달고 성장해야만 하는 사람들도 있다. 그리고 그러한 이들은 남보다 좀 뒤처졌다는 이유로, 혹은 경제적으로나 가정적으로 불우했다는 이유만으로 경계의 시선을 받는 경우가 심심치 않다. 아마도 그렇기 때문에 더 꼬인 삶을 살아야하는지도 모른다. 때문데, 가슴에 품어야 했던 누군가를 향한 원망을 덜기 위해 해서는 안 될 행동을 저지르는 또 다른 실수를 거듭하게 되는 것이다. 악순환의 고리 속에 그들을 얽매이게 했던 꼬리표, 세상이 등 돌리고 손가락질하는 ‘문제아’들 이야기다.
어찌 보면 모자랐던 것이 아니라 조금 달랐던 것뿐이다. 그들이라고 실수를 거듭하길 원하는 것은 아니고 나락으로 떨어지기만을 기다리는 운명을 짊어진 것도 아니다. 그래서 그러한 이들에게는 더욱 관심과 도움이 필요하다. 그저 누군가가 손을 잡아주길 기다렸고, 가식적인 도움이 아닌 포근한 관심이 필요했을 뿐이다. 문제는, 세상이 그런 따스함을 쉽게 전해주지 않았다는 데 있다. 그런 손길의 존재 여부가 소위 문제아라는 꼬리표를 떼어내고 당당히 사회의 일원으로 나설 수 있는지를 결정하는 중요한 역할을 하는데도 말이다. 하지만 다행히도, 아직 세상은 따뜻하다.
김태석님 글중에서...
USE [zm]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/** zm_marine_farm
**/
CREATE PROCEDURE [dbo].[zm_add_gathering_data] (
@param1 NVARCHAR(32),
@param2 NVARCHAR(32),
@param3 FLOAT,
@param4 FLOAT,
@param5 FLOAT
) AS
BEGIN
IF (SELECT COUNT(TABLE_NAME)
FROM INFORMATION_SCHEMA.TABLES
WHERE INFORMATION_SCHEMA.TABLES.TABLE_NAME=@param1) = 0
BEGIN
EXEC('CREATE TABLE [dbo].[' + @param1 + '] (
[gather_time] [datetime] NOT NULL,
[device_node_id] [nvarchar](16) NOT NULL,
[water_temperature] [float] NULL,
[demand_oxygens] [float] NULL,
[salinity] [float] NULL)')
END
EXEC('INSERT INTO [dbo].[' + @param1 + '] (
[gather_time] ,
[device_node_id] ,
[water_temperature],
[demand_oxygens] ,
[salinity] )
VALUES (GETDATE(), '''
+ @param2 + ''','
+ @param3 + ','
+ @param4 + ','
+ @param5 + ')' )
END