|
TDDragon wrote: for making the access db you need access installed
No you don't. You can create it from the Data Sources (ODBC) Administrative Tool. It cannot be done from inside Visual Studio.
Under Win2000, open Control Panels, Administrative Tools, Data Sources (ODBC). Under the User DSN's tab, User Data Sources, double click the MS Access Database line. In the dialog that opens, click the Create button, then give it the fully qualified path for the file you want to create, then click OK. You can also use the options on the right side of this dialog to set the Jet version to use and wether to create a System Database and Ecrypt it. Then just Cancel out of everything. Walla! Done. All you need to do then is add a Data Source to your Visual Studio project to point at the new file. You can then add tables, stored proc's (yeah, right!), views and functions using the Server Explorer.
|
|
|
|
|
didn't know that thanks for the info
you see we learn something new every day
If my help was helpfull let me know, if not let me know why.
The only way we learn is by making mistaks.
|
|
|
|
|
It's one of those things that isn't very widely known and it's documentation is pretty obscure.
|
|
|
|
|
steve_rm wrote: However, when I do the add row, it displays the IncidentID (PK) as NULL.
You have a HUGE problem, since you're code MUST tolerate this situation. XML is NOT a database and will not fill in the PK for you automatically. This PK can NOT be assigned until the record is written back to the real database. Since you can have multiple clients using their own copy of the disconnected data, you cannot have clients assigning permanent PK's on their own. Two clients will get the opportunity to assign the SAME PK to their own, different, records!! Yikes!
You'll have to come up with a scheme to generate a TEMPORARY key that you can use to connect to other records in the database, but you'll have to replace this temp key when the data is synced up to the real database.
|
|
|
|
|
I'm having a problem with the Addressof part. Do i have to do a sub procedure for the click events, if so how? Do I use the performclick method?
I have added the part of code i'm using.
Any help or advice will be welcomed.
Dim mnuFileRecent1 As New MenuItem
Dim mnuFileRecent2 As New MenuItem
Dim mnuFileRecent3 As New MenuItem
Dim mnuFileRecent4 As New MenuItem
Dim RecentFiles(3) As String
Dim ThePath As String
Dim I As Integer
Private Function AppPath() As String
Dim A As String
'Executing file location and name
A = Reflection.Assembly.GetExecutingAssembly.Location
'Strip off file name
A = Mid(A, 1, InStrRev(A, "\"))
Return (A)
End Function
Private Sub btnExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub mnuFileOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFileOprn.Click
If dlgOpen.ShowDialog() = DialogResult.OK Then
FileOpen(1, dlgOpen.FileName, OpenMode.Input)
txtOutput.Text = InputString(1, CInt(LOF(1)))
txtOutput.SelectionLength = 0
FileClose(1)
ThePath = dlgOpen.FileName
RearrangeFiles(ThePath)
End If
End Sub
Private Sub RearrangeFiles(ByVal F As String)
'Reorder the four most recent files located in the menu structure
Dim TempArray(4) As String
Dim TempArrayCounter As Integer = 1
Dim i As Integer
'The first item is the name of the file just opened.
TempArray(0) = F
'Loop the the origonal array, if the item is not the
'same as the new file opened add it to the temp array.
For i = 0 To 3
If RecentFiles(i) <> F Then
TempArray(TempArrayCounter) = RecentFiles(i)
TempArrayCounter += 1
End If
Next i
'Reassign the array
RecentFiles = TempArray
'Re-populate the menu.
mnuFileRecent1.Text = "1 " + RecentFiles(0)
mnuFileRecent2.Text = "2 " + RecentFiles(1)
mnuFileRecent3.Text = "3 " + RecentFiles(2)
mnuFileRecent4.Text = "4 " + RecentFiles(3)
End Sub
Private Sub frmRecent_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
FileOpen(1, AppPath() + "Recent.dat", OpenMode.Input)
mnuFileRecent.MenuItems.Add(mnuFileRecent1)
mnuFileRecent.MenuItems.Add(mnuFileRecent2)
mnuFileRecent.MenuItems.Add(mnuFileRecent3)
mnuFileRecent.MenuItems.Add(mnuFileRecent4)
'AddHandler mnuFileRecent1.Click, AddressOf
Input(1, RecentFiles(0))
Input(1, RecentFiles(1))
Input(1, RecentFiles(2))
Input(1, RecentFiles(3))
FileClose(1)
Catch ex As Exception
End Try
Try
For I = 0 To 3
Select Case I
Case 0
mnuFileRecent1.Text = "1 " + RecentFiles(I)
Case 1
mnuFileRecent2.Text = "2 " + RecentFiles(I)
Case 2
mnuFileRecent3.Text = "3 " + RecentFiles(I)
Case 3
mnuFileRecent4.Text = "4 " + RecentFiles(I)
FileClose(1)
End Select
Next
Catch ex As Exception
End Try
FileClose(1)
End Sub
Private Sub frmRecent_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
'Write the contents of RecentFiles() to recent.dat
FileOpen(1, AppPath() + "Recent.dat", OpenMode.Output)
PrintLine(1, RecentFiles(0))
PrintLine(1, RecentFiles(1))
PrintLine(1, RecentFiles(2))
PrintLine(1, RecentFiles(3))
FileClose(1)
End Sub
Private Sub Recents_click()
mnuFileRecent1.PerformClick()
mnuFileRecent2.PerformClick()
mnuFileRecent3.PerformClick()
mnuFileRecent4.PerformClick()
End Sub
End Class
Regards and Thanks
Zeldacat
|
|
|
|
|
Hi,
some comments:
1.
you can add a single MenuItem Click handler for all four mnuFileRecent MenuItems.
you can find its MenuItem from its sender argument, and the filename from its text.
I see no need for Addressof.
2.
you don't need PerformClick, it simulates clicking something. What I am missing is the
code that sets the texts for mnuFileRecent1-4
3.
You don't need tempArray:
first check whether the new file is already in RecentFiles;
if not, shift them down (from hi to lo index) before you add F at 0.
if it is there, shift them down starting with overwriting the old F, upwards, then put F at 0.
4.
You may want to improve the handling when fewer than 4 recent files are known (initially
or after clearing the list, if that is offered).
suggestion: set up a convention to store/load the situation to/from file; disable menu
items that are not functional yet.
5.
You might consider using Application.UserAppDataPath rather than your AppPath(), since
the latter may be read-only, and the former automatically exists per user.
Luc Pattyn [Forum Guidelines] [My Articles]
this weeks tips:
- make Visual display line numbers: Tools/Options/TextEditor/...
- show exceptions with ToString() to see all information
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
I am working on a database application that uses MS SQL server 2000 and vb.net ide,the application works fine locally ,but when launch the application from another workstation(over network),I encounter a security error saying that my sql client request could not go through cause of a security problem.I had initially used the administrative tool"the .net configuration tool 1.1" to increase the assembly trust to the highest,the application launched but still some forms and look up procedures raise that security exception,the error says that I need to configure the .net security using this tool,but i already have and there is no more thing to do,please help if u can..
Thanks in advance
|
|
|
|
|
don't know for shure but I think you'll have to set some properties on the sql server in order for it to be accesable over network (or was it internet like I said don't know for shure)
also adjusting you're connectionstring might be a solution
check www.connectionstrings.com for all connectionstrings
If my help was helpfull let me know, if not let me know why.
The only way we learn is by making mistaks.
|
|
|
|
|
well it turns out that the problem was very easy to solve,in my haste i wrote to youfore trying much.,well anyway, I was using a third party control,an infragestics button control,this has a dll that the exe uses "obviously" so i only had to add it to the assembly cache,or raise the assembly trust on the contorl dlls and it worked perfectly.this button was sending commnads to the sql server so the error that was rasied said sql security problem,in reality i had to rasie the trust on that dll Thank you for your time
|
|
|
|
|
I give the owner of a video object
vdio=new video.fromFile("location")
vdio.owner=sampicturebox
but the video doesnt play but without an owner, it opens in the default windows which
is a new default window for the directx video??
Any help???
thanks in advance
phatkin
|
|
|
|
|
Can you please show me what is the correct code for that??
Sub Logic()
Const a = 2
Const b = 3
Const c = 5
If a + b = c Then
WScript.Echo (c) //It gives me an error saying Object required
End If
End Sub
|
|
|
|
|
Get rid of the Const declarations.
Just do this:
Sub Logic()
a=2
b=3
c=5
If a + b = c Then
WScript.Echo(c)
End If
End Sub
|
|
|
|
|
But I am still getting the same error
|
|
|
|
|
OK. This is EXACTLY the code I put into a .vbs file and it works. I think you're missing a couple of characters in your version, possibly because you think they're insignificant, but they're not. Any comments should be denoted by an ' character and not \\ or //
Logic
Sub Logic()
a=2
b=3
c=5
If a + b = c Then
WScript.Echo(c)
End If
End Sub
|
|
|
|
|
Hello
VS 2005
I wondering what is the best method to synchronise data on a local client in xml form to a central database.
The dataset will be filled by the web service returning a dataset from the central database.
<code>
ds = ws.GetIncidents()
</code>
I only have one table to update and the client has to be used offline.
Once the dataset has this data, I write the schema and xml. Now the client can use this xml to update, add, and delete incidents.
<code>
ds.writeXMLSchema(path)
ds.writeXML(path, XmlWriteMode.DiffGram) 'DiffGram used for tracking updates
</code>
So I am make all my updates and write those changes to the xml file.
example.
<code>
Dim dr As DataRow
dr = ds.Tables(0).NewRow()
dr("Company") = Me.cboCustomer.Text
dr("Contact") = Me.cboContact.Text
dr("PhoneNo") = Me.txtPhone.Text
ds.Tables(0).Rows.Add(dr)
ds.AcceptChanges() 'Question - is acceptChanges needed before the new row is written to the xml file.
ds.WriteXmlSchema(incidentXSD)
ds.WriteXml(incidentXML, XmlWriteMode.DiffGram)
</code>
'For getting the changes - read in the xml file
<code>
ds.ReadXML(path, XmlReadMode.DiffGram)
IF(ds.HasChanges)THEN
dim dsChanges as new Dataset()
dsChanges = ds.GetChanges()
End IF
</code>
So dsChanges now has new changes.
This is the problem I am having problem with, as the central dataset could have deleted a row. And my client might have a modified
that row. How would I handle that sort of conflict, as the row would not exist on the central database?
Another problem I would send my dsChanges to the central database using the web service. But how would I write the code to update
the central database with my changes?
'My code for the web service to update the central database and synchronise the data
<code>
'Update the central database and return the updated dataset
<WebMethod()> _
Public Function SynchroniseChanges(ByVal dsChanges As DataSet) As DataSet
Dim cmd As New SqlCommand()
Dim da As New SqlDataAdapter()
Dim ds As New DataSet
Try
Me.openConnection()
cmd.Connection = cnn
cmd.CommandType = CommandType.Text
cmd.CommandText = "SELECT * FROM Incident"
da.SelectCommand = cmd
da.Fill(ds, "Incident")
dsChanges.Merge(ds, True, MissingSchemaAction.Add)
'How would I get ds to update the central database
'Once all changes are made to the database return the updated dataset
Return ds
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
cnn.Close()
End Try
Return Nothing
End Function
</code>
Any suggestions to the last to points would be most helpfull.
Many thanks,
Steve
|
|
|
|
|
steve_rm wrote: This is the problem I am having problem with, as the central dataset could have deleted a row. And my client might have a modified
that row. How would I handle that sort of conflict, as the row would not exist on the central database?
That is something that is defined by your business process. We can't tell you how it should be handled, other than the results in the database and in the off-line data have to reflect whatever your business rules dictate happens in this situation.
steve_rm wrote: Another problem I would send my dsChanges to the central database using the web service. But how would I write the code to update
the central database with my changes?
Since you've already written all of this without considering this synchronization in the design of your app (HUGE mistake!) I'd probably start with only sending the updates one at a time, for each record in the offline database. You'd have to send the record to the webservice, and the webservice would probably compare the modified date/time stamp of the record to the one in the database and take any appropriate action based on what's found. If the date/time stamp of the client record is newer, then the database should be updated. If the database date/time stamp is newer, well, that result is up to your business rules again...
From the looks of things, your database wasn't setup to handle having it's data stored and modified off-line. You've got a bunch of work to do...
Oh! SELECT statements like this:
SELECT * FROM Incident
are a disaster, just waiting to happen. It's a much better practice to specify the column names, even if it is all the columns currently in the table.
As for other options to synchronize an offline copy of the data, you might want to take a look at a bunch of different options[^].
|
|
|
|
|
I am writing in VB6
I have a "shell" script in my code that runs a small exe conversion program.
Shell "my_exe.exe"
I want to pause the subsequent code until this program has time to finishes
I have put in a loop
A = 100000000
Do While A > 0
A = A - 1
Loop
But this is really slow.
Does anyone know a better way to code this?
|
|
|
|
|
A little Google goes a long way toward finding a solution[^] to the problem.
VB6 does not have the ability to do this on its own. You have to use the Win32 API to do it.
|
|
|
|
|
Thanks the following code did what I was looking for
DIM My_Shell
Set My_Shell = CreateObject("WScript.Shell")
My_Shell.Run "my_exe.exe"
|
|
|
|
|
and sometimes people still need to ask as they havent got the correct phrase in the google search box
i.e.
vb6 wait for process to exit
would not have been my first choice for a search phrase.
Martin
life is a bowl of cherries
go on take a byte
|
|
|
|
|
And knowing how to do research is the most important skill you can have doing development work.
|
|
|
|
|
ah if only there was a course that told me to use
process instead of application or program - sigh!!
Martin
life is a bowl of cherries
go on take a byte
|
|
|
|
|
I did & it loaded fine. My problem is, none of the controls to change [select voice],[pitch],[speed],&[volume] had any affect on the audio output. What am I doing wrong?
Robert, still trying
|
|
|
|
|
Your best source of information is going to be the manufacturer of the component.
It's very unlikely anyone who frequents CP and answers questions is going to have any knowledge of such a narrow-market product. Though it looks like it wraps MS Speech API 4.0[^].
|
|
|
|
|
Greetings all.
I've made a service which creates an Excel workbook automatically using the Excel COM object.
I have however got a problem that when I try to enter a formula containing the sheet names to sum across all sheets that the service crashes with a "Exception from HRESULT: 0x800A03EC" error and I'm at my wits ends right now.
I know the formula is correct, because I can copy it from the code and past it into the workbook afterwards and it runs fine, but when trying to do so automatically - it fails.
I create a cell range for the cell I want to write this formula in, and use the
"Formula" property to set the value, and here it crashes.
I've made other formulas without issues, and if I do not contain sheetnames, I can write the formula easily enough (I substituted my SUM for a SUM(1+1)) in the relevant cellrange.
So the issue is solely with a formula containing sheet names for me.
Has anybody else experienced something similar, and possible have a solution or a heads up where to go for one?
---------------------------
127.0.0.1 - Sweet 127.0.0.1
|
|
|
|
|