|
Hello there,
I have a task to save Videos (mpg or others) to database .. I'm using Access 2003 .. I could save photos to database but not videos.
Asaad
|
|
|
|
|
If you're using videos then the stored objects are probably going to be pretty large. Not sure if Access can handle large objects though. I use Postgres and this is the way I do it :
<br />
String strMovName;<br />
strMovName = dlgFile.FileName;<br />
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=secret;Database=db;");<br />
<br />
FileInfo TheFileName = new FileInfo(strMovName);<br />
conn.Open();<br />
NpgsqlCommand command = new NpgsqlCommand("INSERT INTO resources (object) VALUES (lo_import('C:/Program Files/Movies/" + TheFileName.Name + "'))", conn);<br />
command.ExecuteNonQuery();<br />
conn.Close();<br />
In this particular example, my movies and pics are stored in a fixed location ( C:/Program Files/Movies/ ) so I hardcoded the path. If you want the path as a variable as well, you have to play around with the query. I also created a table called object, which is of either the OID / bytea type. You can use this code in virtually any db that use SQL queries.
Hope this helped.
|
|
|
|
|
Thank you Rick .
Your Method stores the Path of the file but i want a way to store the video as object so i don't need to the original file anymore .. i could store photos itself in the database (not only pathes) but i'm trying with the videos.
Thank you again.
|
|
|
|
|
Hi I'm 'trying to get a textfield focused after a message has been given to the user.
This was pretty easy to do in other forms, but in this specific it doensn't focus. After the system has finished validating it should save the entered data to a database and clear the textfields for new entry ( which it does). But when validating it gets an exception, after clicking on ok in the messagebox it doesn't focus, but it clear all the textboxes. And thus, it's skipping to the clearing code.
Hereby I send my code so you guys could take a look. Please HELP!!!
By the way, the reason why I chose to use separate if statements for each "row of fields" is because the user is not obligated to fill in ALL row of fields. It may occur that he enters only row 1, 2 and 3. HEELLLLPPPP!!!
if (txtBrnchNr_1.Text.Trim().Length > 0 && txtBrnchDescr_1.Text.Trim().Length > 0 && txtBkBrnch_1.Text.Trim().Length > 0)
{
if (rdbBckOff_1.Checked == true)
{
bckOff = "Y";
}
else
{
bckOff = "N";
}
if (clsAlchCustomMeth.QueryData("SELECT * FROM SPRBRH00P WHERE BRHBRANCH = '" + txtBrnchNr_1.Text.Trim() + "';") == true)
{
MessageBox.Show("Branch " + txtBrnchNr_1.Text.Trim() + " could not be saved. Branch already exists.\nPlease remove from list.", "Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtBrnchNr_1.Focus();
}
else
{
myBranches.Add(new clsBranchGeneric(txtBrnchNr_1.Text.Trim(), txtBrnchDescr_1.Text.Trim(), bckOff, txtBkBrnch_1.Text.Trim()));
this.isOkToSave = true;
}
}
//Same procedure for 2nd row of fields
if (txtBrnchNr_2.Text.Trim().Length > 0 && txtBrnchDescr_2.Text.Trim().Length > 0 && txtBkBrnch_2.Text.Trim().Length > 0)
{
if (rdbBckOff_2.Checked == true)
{
bckOff = "Y";
}
else
{
bckOff = "N";
}
if (clsAlchCustomMeth.QueryData("SELECT * FROM SPRBRH00P WHERE BRHBRANCH = '" + txtBrnchNr_2.Text.Trim() + "';") == true)
{
MessageBox.Show("Branch " + txtBrnchNr_2.Text.Trim() + " could not be saved. Branch already exists.\nPlease remove from list.", "Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtBrnchNr_2.Focus();
}
else
{
myBranches.Add(new clsBranchGeneric(txtBrnchNr_2.Text.Trim(), txtBrnchDescr_2.Text.Trim(), bckOff, txtBkBrnch_2.Text.Trim()));
this.isOkToSave = true;
}
}
//Same procedure for 3rd row of fields
if (txtBrnchNr_3.Text.Trim().Length > 0 && txtBrnchDescr_3.Text.Trim().Length > 0 && txtBkBrnch_3.Text.Trim().Length > 0)
{
if (rdbBckOff_3.Checked == true)
{
bckOff = "Y";
}
else
{
bckOff = "N";
}
if (clsAlchCustomMeth.QueryData("SELECT * FROM SPRBRH00P WHERE BRHBRANCH = '" + txtBrnchNr_3.Text.Trim() + "';") == true)
{
MessageBox.Show("Branch " + txtBrnchNr_3.Text.Trim() + " could not be saved. Branch already exists.\nPlease remove from list.", "Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtBrnchNr_3.Focus();
}
else
{
myBranches.Add(new clsBranchGeneric(txtBrnchNr_3.Text.Trim(), txtBrnchDescr_3.Text.Trim(), bckOff, txtBkBrnch_3.Text.Trim()));
this.isOkToSave = true;
}
}
//Same procedure for 4th row of fields
if (txtBrnchNr_4.Text.Trim().Length > 0 && txtBrnchDescr_4.Text.Trim().Length > 0 && txtBkBrnch_4.Text.Trim().Length > 0)
{
if (rdbBckOff_4.Checked == true)
{
bckOff = "Y";
}
else
{
bckOff = "N";
}
if (clsAlchCustomMeth.QueryData("SELECT * FROM SPRBRH00P WHERE BRHBRANCH = '" + txtBrnchNr_4.Text.Trim() + "';") == true)
{
MessageBox.Show("Branch " + txtBrnchNr_4.Text.Trim() + " could not be saved. Branch already exists.\nPlease remove from list.", "Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtBrnchNr_4.Focus();
}
else
{
myBranches.Add(new clsBranchGeneric(txtBrnchNr_4.Text.Trim(), txtBrnchDescr_4.Text.Trim(), bckOff, txtBkBrnch_4.Text.Trim()));
this.isOkToSave = true;
}
}
//Same procedure for 5th row of fields
if (txtBrnchNr_5.Text.Trim().Length > 0 && txtBrnchDescr_5.Text.Trim().Length > 0 && txtBkBrnch_5.Text.Trim().Length > 0)
{
if (rdbBckOff_5.Checked == true)
{
bckOff = "Y";
}
else
{
bckOff = "N";
}
if (clsAlchCustomMeth.QueryData("SELECT * FROM SPRBRH00P WHERE BRHBRANCH = '" + txtBrnchNr_5.Text.Trim() + "';") == true)
{
MessageBox.Show("Branch " + txtBrnchNr_5.Text.Trim() + " could not be saved. Branch already exists.\nPlease remove from list.", "Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtBrnchNr_5.Focus();
}
else
{
myBranches.Add(new clsBranchGeneric(txtBrnchNr_5.Text.Trim(), txtBrnchDescr_5.Text.Trim(), bckOff, txtBkBrnch_5.Text.Trim()));
this.isOkToSave = true;
}
}
//Same procedure for 6th row of fields
if (txtBrnchNr_6.Text.Trim().Length > 0 && txtBrnchDescr_6.Text.Trim().Length > 0 && txtBkBrnch_6.Text.Trim().Length > 0)
{
if (rdbBckOff_6.Checked == true)
{
bckOff = "Y";
}
else
{
bckOff = "N";
}
if (clsAlchCustomMeth.QueryData("SELECT * FROM SPRBRH00P WHERE BRHBRANCH = '" + txtBrnchNr_6.Text.Trim() + "';") == true)
{
MessageBox.Show("Branch " + txtBrnchNr_6.Text.Trim() + " could not be saved. Branch already exists.\nPlease remove from list.", "Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
txtBrnchNr_6.Focus();
}
else
{
myBranches.Add(new clsBranchGeneric(txtBrnchNr_6.Text.Trim(), txtBrnchDescr_6.Text.Trim(), bckOff, txtBkBrnch_6.Text.Trim()));
this.isOkToSave = true;
}
}
// Everything OK to save to database
}
DataSet dsBranch = new DataSet();
clsAlchCustomMeth.CreateSelCmd("SELECT * FROM SPRBRH00P;");
clsAlchCustomMeth.myAdapter.Fill(dsBranch, "Branches");
foreach (clsBranchGeneric b in myBranches)
{
DataRow newRow = dsBranch.Tables["Branches"].NewRow();
newRow["BRHBRANCH"] = b.BranchNr;
newRow["BRHBRHDES"] = b.Description;
newRow["BRHBCKOFF"] = b.BackOffice;
newRow["BRHBRHBOK"] = b.BookBranch;
dsBranch.Tables["Branches"].Rows.Add(newRow);
clsAlchCustomMeth.CreateInsCmd("INSERT INTO SPRBRH00P (BRHBRANCH, BRHBRHDES, BRHBCKOFF," +
" BRHBRHBOK) VALUES (@Brh, @BrhDes, @BckOff, @BrhBok);");
clsAlchCustomMeth.myAdapter.InsertCommand.Parameters.Add("@Brh", OleDbType.VarChar, 3, "BRHBRANCH");
clsAlchCustomMeth.myAdapter.InsertCommand.Parameters.Add("@BrhDes", OleDbType.VarChar, 35, "BRHBRHDES");
clsAlchCustomMeth.myAdapter.InsertCommand.Parameters.Add("@BckOff", OleDbType.VarChar, 1, "BRHBCKOFF");
clsAlchCustomMeth.myAdapter.InsertCommand.Parameters.Add("@BrhBok", OleDbType.VarChar, 3, "BRHBRHBOK");
try
{
clsAlchCustomMeth.myAdapter.Update(dsBranch, "Branches");
dsBranch.AcceptChanges();
changesOK = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
if (changesOK == true)
{
changesOK = false;
this.ClearForSaveAndNew();
}
}
Poppsie
|
|
|
|
|
Farica wrote: # Keep the question as brief as possible. If you have to include code, include the smallest snippet of code you can.
Read "How to get and answer to your question" at the top. Pay particular note to items 4 and 5.
|
|
|
|
|
If you think anyone will bother reading through a 6-feet post then good luck!!
Smile: A curve that can set a lot of things straight!
(\ /)
(O.o)
(><)
|
|
|
|
|
I would like to help you if I could understand what you needed, sorry.
You should better explain in details what you need, give example, screenshot...etc
This way, it is really hard. Also, what is this exception thrown after validation is finished?
This may be a clue in finding a solution to your question.
|
|
|
|
|
Hello!
Can anyone help me in the following scenario:
- We need to insert multple comma notations in a string (25 in total), at a predefined index number.
- Currently we are 25 inserts as below:
line = line.Insert(7, ",");
line = line.Insert(15, ",");
line = line.Insert(37, ",");
- Is there any better way of doing that!!!?
Thanks in advance!
Adeel
--
|
|
|
|
|
string comma = ",";
int[] insertIndexes[25] = {7,15,37,...};
for(int i =0;i < insertIndexes.Length;i++)
{
line = line.insert(insertIndexes[i],comma);
}
|
|
|
|
|
! actually i was curious if there is any replacement for insert!!! !
|
|
|
|
|
Each line = line.Insert(7, ","); will create a new string and copy all its characters.
If that results in several hundred chars being copied overall, I recommend you use
a StringBuilder, with sufficient initial capacity.
Then set up the logic to copy part of the input, add a comma, copy next part, etc
using nested for loops, and/or an array of constants.
finally transform StringBuilder object back to string with ToString().
|
|
|
|
|
const int[] predefinedIndexes = new int[] {7, 15, 37};
const string notation = ",";
int lineLength = line.Length.
foreach(int index in predefinedIndexes)
{
// just for your safety
if(index < 0 || index >= lineLength)
continue;
line.Insert(index, notation);
}
Hope this helps...
|
|
|
|
|
You could try the following code:
private string insertChars(string str, char insertChar, int[] insertIndexes)
{
StringBuilder b = new StringBuilder(str.Length + insertIndexes.Length);
int count = 0;
for (int i = 0; i != str.Length;i++)
{
if (i == insertIndexes[count])
{
b.Append(insertChar);
if (++count==insertIndexes.Length)
{
b.Append(str.Substring(i,str.Length-i));
break;
}
}
b.Append(str[i]);
}
return b.ToString();
}
For it to work, your index array must be sorted.
|
|
|
|
|
I am writing a program to simulate Go Back N method. I want to open two ports(ex 9999, 8888) on one IP address (ex 127.0.0.1). But when I open 2 port on local IP address and use 2 thread to handle, one for sending(port 9999), one for receiving response(port 8888), it allways show error message. Please help me to solve this. Thank alots.
ThanhND307
|
|
|
|
|
Hello!
Hope you all are doing great! Need suggestion of how to reduce multiple characters to 1! Example is as follows:
We have a string
str = "this is an example ! "
we want to remove multiple space characters and want to have just single space instead! The number of spaces may be more than 200 in string! The result should be as follows:
str = "this is an example ! "
Any help/suggestion/guidence will certainly be appreciated! !
Regards!
Adeel
--
|
|
|
|
|
This should work:
string oneSpace = " ";
string twoSpaces = " ";
string str = "You left out any multiple spaces in your example";
string newStr = str.Replace(twoSpaces,oneSpace);
|
|
|
|
|
Hi,
since there may be more than 2 consecutive spaces, you need to iterate. This is how
I do this:
string s="whatever with many spaces";
do {
int len=s.Length;
s=s.Replace(twoSpaces, oneSpace);
} while (s.Length<len);
For very long strings with many sequences of multiple spaces, it may be more economic
to use a StringBuilder, and fill it in one pass using a bool that remembers whether last
char added was a space or not.
|
|
|
|
|
! Thanks Luc, i guess i really have to learn to use stringbulder! ! Thanks both of you! !
|
|
|
|
|
You are right, this would work better:
string test = "this string has multiple spaces .";
StringBuilder sb = new StringBuilder(test);
int l1 = sb.Length;
int l2 = l1 +1;
while (l1 != l2)
{
l1 = sb.Length;
sb.Replace(" ", " ");
l2 = sb.Length;
}
string result = sb.ToString();
|
|
|
|
|
Sorry, but taking the trouble of using StringBuilder only makes sense if you succeed
in avoiding unnecessary copy operations, hence StringBuilder.Replace is not my choice at all.
Either you use String.Replace in a loop, or a one-pass populating StringBuilder.
BTW your initial values for i1 and i2 are not needed if you test after the loop (do-while).
|
|
|
|
|
it is not working!!! ! extra spaces can be of any number!! and this will only replace 2 spaces with 1 what if we have 99 spaces? !
|
|
|
|
|
Please don't end every sentence with an exclamation mark. Those are used for interjections and exclamations, not for ordinary sentences. An ordinary sentence is ended by a period.
You can replace multiple spaces using a regular expresson:
str = Regex.Replace(str, " {2,}", " ");
---
single minded; short sighted; long gone;
|
|
|
|
|
actually they were used for exclamations and that is because working and learning new things of c# do make me happy.
|
|
|
|
|
If you're happy and you know it keep it to your own darn self.
|
|
|
|
|
I happen to have one here, one I wrote in C many years ago and then ported to C# a few years back, thanks for giving me a reason to revisit it. (Now I'll revisit my Split that honors quotes and escapes as well.)
Usage:
subject = the string to compress
trash = list of characters to compress (usually " \b" -- SPACE and TAB)
replacements = what to replace them with (usually " " -- SPACE)
quotes = if you don't want compress within quotes, specify "\"" or "'"
escapes = not often used, but if for instance trash contains "n" and subject contains "\n"
and you don't want it replaced, specify "\\" for escapes and the "\n" will be
preserved
(quotes and escapes may be empty or null)
advanced: two characters may be specified for replacements (and I've forgotten why I allow it)
given trash="z" and replacements="xy"
then subject="zzz" becomes "yyx" (rather than "x")
example:
if ( args.Length > 0 )
{
System.Console.Write
(
"<" +
PIEBALD.Lib.LibStr.Compress ( args [ 0 ] , " \b" , " " , "'" , "\\" )
+ ">"
) ;
}
public static string
Compress
(
string subject ,
string trash ,
string replacements ,
string quotes ,
string escapes
)
{
System.Text.StringBuilder result = new System.Text.StringBuilder ( subject.Length ) ;
char prevch = '\0' ;
int index = 0 ;
int quo = -1 ;
int quoon = -1 ;
int escon = -1 ;
if ( quotes == null )
{
quotes = "" ;
}
if ( escapes == null )
{
escapes = "" ;
}
while ( index < subject.Length )
{
if ( ( escon = escapes.IndexOf ( prevch ) ) != -1 )
{
quoon = -1 ;
}
else
{
quoon = quotes.IndexOf ( subject [ index ] ) ;
}
if ( quoon != -1 )
{
if ( quo == -1 )
{
quo = quoon ;
}
else
{
if ( quo == quoon )
{
quo = -1 ;
}
}
}
prevch = subject [ index ] ;
if ( ( quo == -1 ) && ( trash.IndexOf ( subject [ index ] ) != -1 ) )
{
if ( ( index == subject.Length-1 ) || ( trash.IndexOf ( subject [ index+1 ] ) == -1 ) )
{
result.Append ( replacements [ 0 ] ) ;
}
else
{
if ( replacements.Length > 1 )
{
result.Append ( replacements [ 1 ] ) ;
}
}
index++ ;
}
else
{
result.Append ( subject [ index++ ] ) ;
}
}
return ( result.ToString() ) ;
}
|
|
|
|
|